2015-06-19 42 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

我認爲你現在應該可以發表評論;) –

相關問題