如果在运行以下 VBA 代码时,出现错误提示'无法设置 Value 属性,类型不匹配',这可能是因为 TextBox9 是一个文本框,而 result 是一个 Variant 类型的值。

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.Value = result
    Else
        TextBox9.Value = ""
    End If
End Sub

要解决这个问题,你可以将 result 转换为字符串类型,并将其赋给 TextBox9Text 属性,而不是 Value 属性。

以下是修改后的代码:

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

在上面的代码中,我们使用 CStr 函数将 result 转换为字符串类型,并将其赋给 TextBox9Text 属性。

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

VBA 错误: 无法设置 Value 属性,类型不匹配 - TextBox9 和 VLookup 结果类型问题

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

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