如何为vlookup设置false结果处理程序

时间:2016-04-15 02:50:36

标签: excel vba

我在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

提前谢谢

2 个答案:

答案 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