0

我是一个普通的 VBA 用户,不知道为什么会出错。

这是代码:

    Set cell = AA.Sheets(sc).Columns("E").Find(Name, LookAt:=xlWhole)
If Not cell Is Nothing Then
    FirstAddress = cell.Address
    Do
        s = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("F" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0)
        p = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("G" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0)
        Set cell = AA.Sheets(sc).Columns("E").FindNext(cell)
    Loop While cell.Address <> FirstAddress 'ERROR ON THIS LINE
End If
Set cell = Nothing

我收到一个对象变量或 With block variable not set 错误。在第一次运行低谷之后,“cell”正在返回“Nothing”,即使应该还有 2 次通过。如果我删除 's =' 和 'p =' 行,它会正确完成。我需要这些来做我正在做的事情。

我将如何解决这个问题?谢谢!

4

1 回答 1

0

出现此错误是因为“s”和“p”行使用 Excel 的“查找”对象。该应用程序只有一个“查找”实例。您在第一行初始化它,然后使用“FindNext”。仅当您不使用中间的“查找”对象时才有效。

于 2013-07-12T14:31:57.390 回答