excel - 如何根据包含该字符串的 excel 范围验证在输入框中输入的字符串?
问题描述
请原谅我这个问题,因为我是新手。我正在尝试在 VBA 输入框中输入一个字符串并获取该字符串并针对包含 Excel 工作表(“角色”)中的字符串列表的范围进行验证。如果该字符串存在于该范围内,那么我想使用 Vlookup 在下一列中显示该值并将其显示在一个 msg 框中。否则我想要一个显示“字符串不存在”的消息框。我有下面的代码,我无法让它工作。当我执行代码时,出现类型不匹配错误非常感谢您的帮助!
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
解决方案
你的问题是在这一行
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
推荐阅读
- java - 我的弹簧靴中的执行器不工作
- c# - 如何将参数从 VBA 传递到 DLL 文件或 API
- sql - 如何根据特定条件sql从xml中获取特定节点的值
- regex - 如何在 Qt QML 中打断一行源代码
- php - 我无法显示数据库 MySQL 中的图像
- php - 从 memcach 获取值,但它为空
- python - 用 seaborn 绘制不同色调但风格相同的点标记和线条
- java - 在数据库中使用带有 H2 的 Hibernate 时出错
- c# - 64 Asp.Net MVC 应用程序中 jquery.validate-vsdoc.js 文件中的错误
- javascript - 正则表达式在 Regex101 上工作,但不在网站上