VBA使用通配符查找行中的值

我试图做一个循环(我是非常新的VBA),在列A中检查单词“苹果”。列A包含水果名称。 当find“Apple”时,则代码将范围“H2:S2”复制到列G以及列A中相应的行值。

但是,当search标准部分更改为通配符时,代码将不会运行(我的目标是包含单词“存在”的行)。

lookupVal = "Apple" 'Works lookupVal = "*Apple*" 'Nothing happens 

我应该如何调整下面的代码,使其通配符运行,或者有比这个代码状态更好的解决scheme来实现结果?

完整代码:

 Sub CopypasteValues() Dim i, j, lastrowA As Long Dim lookupVal As String 'finds the last row in Column A lastrowA = Sheets("Dataset").Cells(Rows.Count, "A").End(xlUp).Row 'loop over values in Sheet "Dataset" For i = 1 To lastrowA lookupVal = "Apple" 'Define search critera For j = 1 To lastrowA currVal = Sheets("Dataset").Cells(j, "A") If lookupVal = currVal Then ValueCopy = Range("G2:S2").Copy 'Range to copy Sheets("Dataset").Cells(j, "G") = Range("G" & j).PasteSpecial End If Next j Next i End Sub 

你可以使用Like运算符:

 If currVal Like lookupVal Then 

所以,如果lookupVal"*Apple*"currVal"Aren't Apples nice to eat" ,testing将是True


您可能还需要使用

 If LCase$(currVal) Like LCase$(lookupVal) Then 

如果你想避免大小写敏感的问题。


您也可以考虑使用Find (根据需要使用LookAt:=xlPartLookAt:=xlWhole参数),而不是逐个比较。 但这要取决于你的要求是否是一个可行的解决scheme。