vba - 无需对 VBA 代码进行任何修改即可获取类型不匹配错误

标签 vba excel

嗨,我有一个代码,我没有做任何更改,但我得到 Type mismatch error .它以前工作正常。

代码 :

Private Sub UserForm_Initialize()

    Dim r As Integer
    Dim c As Integer
    Me.ComboBox1.RowSource = "Intro!A3:A" & Range("A" & Rows.Count).End(xlUp).Row
    r = Application.Match("c", Columns(1), 0)
    c = Application.Match("cc", Rows(1), 0)
    TextBox1.Value = Cells(r, c).Value
    TextBox2.Value = Cells(r, c + 1).Value
    TextBox3.Value = Cells(r, c + 2).Value
    TextBox4.Value = Cells(r, c + 3).Value


End Sub

使用 f8 运行到达此处时通过代码发现错误:
 c = Application.Match("cc", Rows(1), 0)

此行的目标是在第一行中找到匹配项

最佳答案

使用 Match 时您应该始终为 Match 的场景准备代码未能找到您要查找的值(或字符串)。

您可以使用以下方法做到这一点:

If Not IsError(Application.Match("cc", Columns(1), 0)) Then

修改代码
Dim r As Variant
Dim c As Variant

Me.ComboBox1.RowSource = "Intro!A3:A" & Range("A" & Rows.Count).End(xlUp).Row

If Not IsError(Application.Match("c", Columns(1), 0)) Then
    r = Application.Match("c", Columns(1), 0)
Else
    ' in case "c" is not found
    MsgBox "critical error finding 'c'"
End If

If Not IsError(Application.Match("cc", Columns(1), 0)) Then
    c = Application.Match("cc", Columns(1), 0)
Else
    ' in case "cc" is not found
    MsgBox "critical error finding 'cc'"
End If

关于vba - 无需对 VBA 代码进行任何修改即可获取类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49377341/

相关文章:

excel - 用 vba 附加文本文件

等效于 VBA 指数形式的 C# 数据类型

excel - 如何使用VBA在单元格中输入公式?

vba - Excel - 将索引匹配公式更改为 VBA 操作

vba - 有没有办法在 IDE 而不是主机应用程序中显示用户表单?

Excel VBA 自动筛选 > 删除空行

excel - 在 vba 中使用单元格()作为字符串时出错?

vba - Excel VBA - 通过列重复宏

VBA 使用通配符打开文件,只知道扩展名

python - 使用 xlwings 编写 VBA 宏来调用 python 脚本