проблемы с подстановочными знаками в Excel VBA - PullRequest
0 голосов
/ 29 ноября 2018

Мне трудно использовать подстановочный знак в моем коде VBA.

Set OpenWB = Workbooks.Open("C:filename.csv", ReadOnly:=True)

With OpenWB.Worksheets(1)
    iTotSRows = .Range("F" & .Rows.Count).End(xlUp).Row
    oSourceR = .Range("A2:G" & iTotSRows)
End With
OpenWB.Close False

Set CompWB = Workbooks.Open("C:filename2.csv", ReadOnly:=True)

With CompWB.Worksheets(1)
    iTotCRows = .Range("A" & .Rows.Count).End(xlUp).Row
    oCurR = .Range("A2:f" & iTotCRows)
End With
CompWB.Close False

For iSC = 1 To UBound(oSourceR) 
    For iCC = 1 To UBound(oCurR)
        If (LCase(oCurR(iCC, 2)) = LCase(oSourceR(iSC, 2))) And (LCase(oCurR(iCC, 3)) = LCase(oSourceR(iSC, 3))) And (LCase(oCurR(iCC, 4)) = LCase(oSourceR(iSC, 4))) And (LCase(oCurR(iCC, 5)) = "*" & LCase(oSourceR(iSC, 5))) Then
            oSourceR(iSC, 7) = oCurR(iCC, 6)
            Exit For
        End If
    Next
Next

ThsSht.Range("A2:G" & iTotSRows) = oSourceR

Как вы можете видеть, когда я сравниваю значения, я хочу использовать подстановочный знак для сравнения (oSourceR (iSC, 5)) и (oCurR (iCC, 5)), поскольку один является ссылочным номером, который содержится в конце строки другого.

Почему это не работает?Остальная часть кода работает нормально, если не для подстановочного знака.

1 Ответ

0 голосов
/ 29 ноября 2018

Вам необходимо использовать оператор Like.

If (LCase(oCurR(iCC, 2)) = LCase(oSourceR(iSC, 2))) And _
   (LCase(oCurR(iCC, 3)) = LCase(oSourceR(iSC, 3))) And _
   (LCase(oCurR(iCC, 4)) = LCase(oSourceR(iSC, 4))) And _
   (LCase(oCurR(iCC, 5)) Like "*" & LCase(oSourceR(iSC, 5))) Then
        oSourceR(iSC, 7) = oCurR(iCC, 6)
        Exit For
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...