2016-07-22 40 views
0

我剛剛寫了一個帶有兩個UserForms的7頁宏,這是一個美的事情。 有兩個數據庫,左邊的數據庫比右邊的數據庫長。VBA發現,如何捕獲什麼時候什麼都沒有找到

我使用一個變量DDataa1和VBA函數:

Sub SSearchh() 
... code ... 
Cells.Find(What:=DDataa1, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate 
... code ... 
End Sub 

它完美的作品時,有沒有DDataa1找到EXCEPT。 (也就是說,右側列表中沒有變量,正在搜索左側列表中)。

在這種情況下,宏只是停止。我想捕獲這個「未找到數據」事件並編寫更多特定於此故障的代碼,但此函數似乎不會生成真/假條件。

具體的援助將不勝感激

+0

所以,你激活你發現任何細胞。但如果沒有發現,Excel不知道要激活什麼。因此錯誤。將其設置爲範圍並檢查範圍是否不是什麼。 '不是rng找不到' – cyboashu

回答

1

你可以嘗試

Dim FindRange As Range 
Set FindRange = Cells.Find(What:=DDataa1, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 
If FindRange Is Nothing Then 
    ' do error handling here 
Else 
    FindRange.Activate 
End If