我正在尝试编写一个搜索一系列单元格的子例程,并返回具有指定值的第一个单元格的列号。这就是我到目前为止所做的:
Dim StartCol As Long
Dim rngSearch As Range
Dim rngFound As Range
USedCol = ActiveWorkbook.Sheets("...").UsedRange.Columns.Count
Set rngSearch = Range(Cells(6, 2), Cells(6, USedCol))
Set rngFound = rngSearch.Find(What:="Jun", LookIn:=xlValues, LookAt:=xlWhole)
StartCol = rngFound.Column
不幸的是,这给了我错误“对象变量或没有设置块变量”。错误必须来自未设置的块变量,因为我没有使用任何with语句。我在其他程序中使用了几乎完全相同的代码行,并且它运行得很好。我不确定我在这里缺少什么。非常感谢任何帮助,谢谢。
此外,当我调试时,突出显示的行是
StartCol = rngFound.Column
如果您需要任何其他信息,请与我们联系。
答案 0 :(得分:2)
如果搜索失败,将从MSDN发生这种情况:
Range.Find方法(Excel)
...
如果未找到匹配项,则此方法返回Nothing。
链接:https://msdn.microsoft.com/en-us/library/office/ff839746.aspx
你可以测试一下:
If rngFound Is Nothing Then
'Code to handle not found case
Else
StartCol = rngFound.Column
End If