在搜索代码时出错“对象变量或未设置块变量”

时间:2015-06-19 15:28:41

标签: excel vba excel-vba

我正在尝试编写一个搜索一系列单元格的子例程,并返回具有指定值的第一个单元格的列号。这就是我到目前为止所做的:

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

如果您需要任何其他信息,请与我们联系。

1 个答案:

答案 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