我正在尝试执行搜索,它在列中搜索“REQM”(无引号)并将找到的单元格的范围设置为 d。然后调用另一个子函数来查找输入数据的位置。我的 FindEntryArea 子函数工作正常,我的第一个 find 工作得很好,但是当它尝试 findnext 时它不能正常工作。
Sub FindLoop()
Dim re as Range
Set re = Sheets(1).Range("T:T")
With re
Set d = .Find("REQM", LookIn:=xlFormulas, LookAt:=xlWhole)
MsgBox (d.Row)
Call FindEntryArea
Do
Set d = .FindNext(d)
MsgBox (d.Row)
Call FindEntryArea
Loop While Not d Is Nothing
End With
End Sub
试图找出错误,我使用 msgbox 打印出找到的范围行,这对第一个单元格有效,但对 findnext 无效。我得到对象变量或未设置块变量。我对 VBA 相当陌生,这是我第一次使用 findnext,因此将不胜感激。re 也是我的范围,并且应该在其中找到许多其他单元格。
谢谢。
编辑:
主要代码和findloop
Public re As Range
Public d As variant
Sub MainCode()
Dim r as Range
Set re = Worksheets("Summary all PIIDB").Range("T:T")
Set r = Worksheets("Summary all PIIDB")
With r
Call FindLoop
End With
End Sub
Sub FindLoop()
With re
Set d = .Find("REQM", LookIn:=xlFormulas, LookAt:=xlWhole)
MsgBox (d.Row)
'Call FindEntryArea
Set d = .FindNext(d)
MsgBox (d.Row)
'Call FindEntryArea
End With
End Sub
我删除了循环只是为了让 findnext 先工作,但我仍在苦苦挣扎。