我是vba的新手,下面的代码是在excel中找到两个ID之间的匹配项(如果匹配),然后将新值放入新单元格中。问题是调试出现时“无法获取WorksheetFunction类的find属性”。
Dim lMatch As Long
For i = 0 To 112
For j = 0 To 540
lMatch = Application.WorksheetFunction.Find(Cells(2 + i, "A").Value, Cells(2 + j, "H").Value)
If lMatch > 0 Then
ActiveSheet.Cells(2 + i, "B").Value = ActiveSheet.Cells(2 + j, "I").Value
End If
Next j
Next i
我不认为您需要WorksheetFunction.Find(),它是应用于范围的另一个Find方法。这个怎么样?
Dim lMatch As Range
For i = 0 To 112
For j = 0 To 540
Set lMatch = Cells(2 + i, "H").Find(Cells(2 + i, "A").Value)
If Not lMatch Is Nothing Then
ActiveSheet.Cells(2 + i, "B").Value = ActiveSheet.Cells(2 + j, "I").Value
End If
Next j
Next i
我相信如果您要查找的内容不存在,WorksheetFunction.Find()
将引发错误。
我建议使用诸如InStr()
之类的其他功能来实现您似乎正在尝试的功能。
或者,如果必须,在找不到该值时,请使用On Error
重定向程序流。
请正确检查查找功能,以下是查找功能的正确格式Find(“ A”,cells(2 + i))