在VBA中运用VLOOKUP,查询不到指定值,求指教!

代码:PrivateSubCommandButton2_Click()OnErrorGoToerrorDimIDAsStringID=TextBox1.TextDimsR... 代码:
Private Sub CommandButton2_Click()
On Error GoTo error
Dim ID As String
ID = TextBox1.Text
Dim sRange As Range: Set sRange = Worksheets("目标表格").Range("B45:B47")
Sname = Application.WorksheetFunction.VLookup(ID, sRange, 3, False)
MsgBox "员工姓名" + Sname
error:
MsgBox "对应字母不存在"
End Sub
展开
 我来答
太极健1969
2012-03-14 · TA获得超过9033个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3601万
展开全部
两个问题
1、你的srange取值只一列单元格,你的公式中却有第3列
2.、你从文本框中取的值ID是文本,对应单元格中即是数值,当然找不到。
3、你找到了还继续提示没有找到,是因为你没有终止程序。
修改如下
Private Sub CommandButton2_Click()
On Error GoTo error
Dim ID '这不要定义为文本
ID = Val(TextBox1.Text) '转换为数值以对应你B列的数字,如果你的B列不是数字,不用val函数转换
Dim sRange As Range: Set sRange = Worksheets("目标表格").Range("B45:C47")
Sname = Application.VLookup(ID, sRange, 2, False)
MsgBox "员工姓名" + Sname
Exit Sub '找到了就退出程序,否则每次都会运行到结束
error:
MsgBox "对应字母不存在"
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式