【问题标题】:VBA Match Function on combo box组合框上的 VBA 匹配功能
【发布时间】:2022-01-03 19:38:44
【问题描述】:

我正在尝试获取一个表单,以使用单元格 Z 作为查找参考来填充工作表中的数据。

显示我的问题参考列表的表单上的下拉菜单有效。当我从所述列表中选择一个项目来填充表单时,我收到不匹配错误。

另外,我在Z 列中的范围是字母和数字的混合。我确实将 I 更改为变体,但没有运气

application.match 正在返回错误。有什么想法吗?

运行时错误“13”:类型不匹配

Private Sub ComboBox2_Change()
    If Me.ComboBox2.Value <> "" Then
        Dim sh As Worksheet
        Set sh = ThisWorkbook.Sheets("Inbound Issues")
        Dim i As Integer
        i = Application.Match(VBA.CLng(Me.ComboBox2.Value), sh.Range("Z:Z"), 0)
        Me.TextBox1.Value = sh.Range("H" & i).Value
    End If
End Sub

【问题讨论】:

  • 如果你能给出错误代码和描述会有所帮助......另外,将i声明为Long以避免潜在的溢出
  • 可能Me.ComboBox2.Value 中的值不能用CLng 转换成Long?而Application.Match 并不总是返回Integer,但可以返回Error,因此i 需要为Variant
  • 您可以通过在尝试强制转换之前测试Me.ComboBox2.Value 是否为数字来避免CLng 的错误。 IsNumeric 是一种快速检查字符串是否可以转换为数字的简便方法。

标签: vba combobox match lookup


【解决方案1】:

私有子 ComboBox2_Change() 如果 Me.ComboBox2.Value "" 那么 暗淡为工作表 设置 sh = ThisWorkbook.Sheets("入站问题") 将 i 调暗为整数 i = Application.Match(VBA.Str(Me.ComboBox2.Value), sh.Range("Z:Z"), 0) Me.TextBox1.Value = sh.Range("H" & i).Value 万一 结束子

将 Clng 更改为 Str

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多