我在VBA(excel)中设置了一个vlookup,如下所示。如果找不到vlookup的结果,它应该返回空白但我收到错误。如何设置false结果处理程序?
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 :(得分:0)
实际上有两个版本的VLookup
可用。在这种情况下,您最好使用另一个。只需将查找更改为
result = Application.VLookup(user, Worksheets("users").Range("A:B"), 2, False)
它会起作用。
主要区别在于函数如何处理错误。此版本返回错误变量,WorksheetFunction
版本会引发运行时错误(如果您愿意,可以使用On Error ...
处理)
答案 1 :(得分: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