如何针对包含该字符串的Excel范围验证在输入框中输入的字符串?

时间:2019-02-08 09:46:19

标签: excel vba

请问这个问题,因为我是新手。我正在尝试在VBA输入框中输入一个字符串,并采用该字符串并针对包含Excel工作表(“ Roles”)中的字符串列表的范围进行验证。如果该字符串存在于该范围内,那么我想使用Vlookup在下一列中显示该值,并将其显示在msg框中。否则,我想让一个msgbox显示“字符串不存在”。我有下面的代码,我无法正常工作。执行代码时,我收到类型不匹配错误。非常感谢您的帮助!

Option Explicit

Sub GetRoles()
    Dim Name As String
    Dim Role As String

    Name = InputBox("Enter a Name")
    Sheets("Roles").Activate

    If Range("name_list").Value = Name Then
        Role = WorksheetFunction.VLookup(Name, Range("name_list"), 2, False)
        MsgBox Name & " is a " & Role
    Else
        MsgBox Name & " does not exist"
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

您的问题是这一行

If Range("name_list").Value = Name Then

您正在尝试检查多单元格区域中值的存在,并且不能没有每个单元格之间的循环或采用不同的方法。

这是一种使用Find方法的方法。

Sub GetRoles()

Dim Name As String
Dim Role As String
Dim r As Range

Name = InputBox("Enter a Name")
If Name = vbNullString Then Exit Sub

Sheets("Roles").Activate
Set r = Range("name_list").Find(What:=Name, LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
If r Is Nothing Then
    MsgBox Name & " does not exist"
Else
    MsgBox Name & " is a " & r.Offset(, 2).Value
End If

End Sub