VBA 类型不匹配错误:VLookup 结果与 TextBox 数据类型不兼容的解决方案
如果在运行以下代码时出现错误提示‘类型不匹配’,可能是因为 TextBox9
的数据类型与 result
的数据类型不兼容。
Private Sub TextBox7_AfterUpdate()
Dim result As Variant
result = Application.VLookup(TextBox7.Value, Sheets('产品编号总表').Range('B:G'), 4, False)
If Not IsError(result) Then
TextBox9.Text = CStr(result)
Else
TextBox9.Text = ""
End If
End Sub
要解决这个问题,你可以尝试将 result
的值转换为适当的数据类型,再赋给 TextBox9
。
例如,如果 TextBox9
是一个数值型文本框(如 Double 或 Integer),你可以使用 CDbl
或 CInt
函数将 result
转换为相应的数值类型。如果 TextBox9
是一个日期型文本框,你可以使用 CDate
函数将 result
转换为日期类型。
以下是一些示例,你可以根据需要选择适当的转换函数:
Private Sub TextBox7_AfterUpdate()
Dim result As Variant
result = Application.VLookup(TextBox7.Value, Sheets('产品编号总表').Range('B:G'), 4, False)
If Not IsError(result) Then
TextBox9.Text = CStr(result) ' 文本型
'TextBox9.Text = CInt(result) ' 整数型
'TextBox9.Text = CDbl(result) ' 双精度型
'TextBox9.Text = CDate(result) ' 日期型
Else
TextBox9.Text = ""
End If
End Sub
根据你的实际需求,选择适当的转换函数,并将其应用于 result
的值。然后,将转换后的值赋给 TextBox9
的 Text
属性。
请确保你已将这段代码放置在窗体的代码模块中,并将 TextBox7_AfterUpdate
事件与文本框 TextBox7
关联。

原文地址: https://www.cveoy.top/t/topic/29A 著作权归作者所有。请勿转载和采集!