我是vba的新手。下面的代码是在excel中找到两个ID之间的匹配(如果匹配),然后将新值放入新单元格中。问题是当调试出现“无法获取WorksheetFunction类的查找属性”时。
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
答案 0 :(得分:4)
如果您要查找的内容不存在,我相信WorksheetFunction.Find()
会抛出错误。
我建议使用其他功能,例如InStr()
来实现您的尝试。
或者,如果必须,请使用On Error
在无法找到值时重定向程序流。
答案 1 :(得分:1)
我认为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
答案 2 :(得分:0)
请正确检查查找功能,以下是查找功能的正确格式 Find(“ A”,cells(2 + i))