2016-04-15 56 views
-1

我已經在VBA(excel)中設置了一個vlookup,如下所示。當沒有找到vlookup的結果時,它應該返回爲空,但我收到一個錯誤。我如何設置錯誤結果處理程序?如何爲vlookup設置虛假結果處理程序

Private Sub users() 

Dim user As String 
Dim result As Variant 

user = Application.UserName 
result = Application.WorksheetFunction.VLookup(user, Worksheets("users").Range("A:B"), 2, False) 

If IsError(result) Then result = "" 


Worksheets("sheet1").Range("C18").Value = result 

End Sub 

預先感謝您

回答

0

當我認爲我解決了問題並尋求幫助時,我找到了可能的答案。

Private Sub users() 

Dim user As String 
Dim result As Variant 

user = Application.UserName 

On Error Resume Next 
result = Application.WorksheetFunction.VLookup(user, Worksheets("users").Range("A:B"), 2, False) 
If Err Then 
result = "" 
End If 

Worksheets("発注エントリー").Range("C18").Value = result 

End Sub 
0

有實際的VLookup提供兩個版本。在這種情況下,你最好使用另一個。只需將您的查詢更改爲

result = Application.VLookup(user, Worksheets("users").Range("A:B"), 2, False) 

它會工作。

主要區別在於函數如何處理錯誤。此版本返回一個錯誤變量,WorksheetFunction版本會引發運行時錯誤(如果您願意,您可以使用On Error ...來處理)

+0

很好,那也可以。它縮短了代碼,甚至不需要在錯誤恢復下。 – Maki