【发布时间】:2013-06-06 02:54:17
【问题描述】:
我正在尝试执行搜索,它在列中搜索“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 是我的范围,还有很多其他的单元格应该在其中找到。
谢谢。
编辑:
主代码和查找循环
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 先工作,但我仍在苦苦挣扎。
【问题讨论】:
标签: vba find range runtime-error with-statement