2015-06-19 46 views
0

我试图编写一个子程序,它搜索一系列单元格,并返回具有指定值的第一个单元格的列号。这是我到目前为止:通过代码搜索时出现“对象变量或块变量未设置”

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 

不幸的是,这给了我错误“对象变量或块变量未设置”。错误必须来自未设置的块变量,因为我没有使用任何语句。我已经在其他程序中使用了几乎完全相同的代码行,并且它工作得很完美。我不确定我在这里错过了什么。我非常感谢任何帮助,谢谢。

此外,当我调试,这被强调该行

StartCol = rngFound.Column 

让我知道如果你需要的任何其他信息。

+0

改用以下... 如果不rngFound是Nothing然后StartCol = rngFound.Column – Tragamor

回答

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 
+0

完美工作,感谢这么许多! –

+1

我认为你现在应该可以发表评论;) –

相关问题