在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 展开
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 展开
1个回答
展开全部
两个问题
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询