“无法获取WorksheetFunction类的查找属性

时间:2013-04-29 10:09:24

标签: vba excel-vba excel

我是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

3 个答案:

答案 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))