1

基準が一致する場合にサービスをオフセット セルに入力する以下のコードがあります。ただし、この段階では、文字列がセル内に表示される場合に、単語が完全な単語であるのではなく、値が適用されることに基づいて動作します。たとえば、基準内に「Visit」があり、「Vistor」(セル内) はコード内で準拠すべきでない場合に準拠します。誰か助けてください。

Option Compare Text
Sub CHECK_CELL_VALUES()
    Dim LASTROW As Long
    Application.ScreenUpdating = False
        With Sheet1
        LASTROW = .Range("A1048576").End(xlUp).Row


            For i = 2 To LASTROW
                If Cells(i, 7).Value Like "*Service*" _
                Or Cells(i, 7).Value Like "*Servicing*" _
                Or Cells(i, 7).Value Like "* Labour*" _
                Or Cells(i, 7).Value Like "* Job*" _
                Or Cells(i, 7).Value Like "* Hire*" _
                Or Cells(i, 7).Value Like "* Visit*" _
                Or Cells(i, 7).Value Like "* Scaffold*" _
                Or Cells(i, 7).Value Like "* Contract*" _
                Or Cells(i, 7).Value Like "* Hour*" _
                Or Cells(i, 7).Value Like "* Month*" _
                Or Cells(i, 7).Value Like "* Quarter*" _
                Or Cells(i, 7).Value Like "* Day*" _
                Or Cells(i, 7).Value Like "* Maintenance*" _
                Or Cells(i, 7).Value Like "* Repair*" _
                Or Cells(i, 7).Value Like "* Survey*" _
                Or Cells(i, 7).Value Like "* Training*" _
                Or Cells(i, 7).Value Like "* Calibration*" _
                Then Cells(i, 7).Offset(0, 46).Value = "Service"
                Debug.Print Cells(i, 7).Address
            Next i

        End With
    Application.ScreenUpdating = True
End Sub
4

2 に答える 2

0

これを行う方法は次のとおりです。a)検索する文字列の前後にスペースを追加するb)前後にスペースを追加した文字列を検索します。これは VISIT という単語を検索する例で、「VISIT」「A VISIT」「VISIT SOMETHING」と一致しますが、「VISITOR」は除外されます。

InStr(1, " " & UCase(Sheets("Sheet1").Cells(i, 1)) & " ", " VISIT ")
于 2016-06-01T16:45:04.690 に答える
-1

これを変更してみてください:

If Cells(i, 7).Value Like "*Service*"

これに:

If InStr(Cells(i,7).Value,"Service") > 0

などなど - これは文字列全体に一致します"Service"詳細についてInStrは、こちらを参照してください

于 2015-09-28T14:43:54.073 に答える