如果在运行以下代码时出现错误提示‘类型不匹配’,可能是因为 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),你可以使用 CDblCInt 函数将 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 的值。然后,将转换后的值赋给 TextBox9Text 属性。

请确保你已将这段代码放置在窗体的代码模块中,并将 TextBox7_AfterUpdate 事件与文本框 TextBox7 关联。

VBA 类型不匹配错误:VLookup 结果与 TextBox 数据类型不兼容的解决方案

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

免费AI点我,无需注册和登录