“无法获得WorksheetFunction类的find属性

问题描述 投票:1回答:3

我是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
vba excel-vba excel
3个回答
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

4
投票

我相信如果您要查找的内容不存在,WorksheetFunction.Find()将引发错误。

我建议使用诸如InStr()之类的其他功能来实现您似乎正在尝试的功能。

或者,如果必须,在找不到该值时,请使用On Error重定向程序流。


0
投票

请正确检查查找功能,以下是查找功能的正确格式Find(“ A”,cells(2 + i))

© www.soinside.com 2019 - 2024. All rights reserved.