将单元格拆分为多行-类型不匹配错误

时间:2018-10-03 18:55:21

标签: excel vba

作为参考,我尝试使用从this Stack Overflow question中选择的答案,但是在运行宏时出现运行时错误13:键入不匹配错误。

我的数据的设置与上一个问题中的数据类似:

ColA    ColB    ColC    ColD
1001    Red     Apple   A,B
1002    Blue    Pear    C
1003    Green   Plumb   D,E

我需要的输出看起来像这样:

ColA    ColB   ColC     ColD
1001    Red    Apple    A
1001    Red    Apple    B
1002    Blue   Pear     C
1003    Green  Plumb    D
1003    Green  Plumb    E  

我将宏调整为如下形式(使用范围为D999999,并修改了工作簿的名称):

Sub SplitMultipleUDC()
    Dim r As Range, i As Long, ar
    Set r = Worksheets("OUTPUT1_TEST_MACRO").Range("D999999").End(xlUp) ' The line I changed
    Do While r.Row > 1
        ar = Split(r.Value, ",")
        If UBound(ar) >= 0 Then r.Value = ar(0)
            For i = UBound(ar) To 1 Step -1
            r.EntireRow.Copy
            r.Offset(1).EntireRow.Insert
            r.Offset(1).Value = ar(i)
        Next
        Set r = r.Offset(-1)
    Loop
End Sub

有问题的错误行指向:

ar = Split(r.Value, ",")

我不知道为什么将其视为数据类型不匹配。我对列D中的值使用了vlookup,但将每个公式结果复制/粘贴为值。当宏第一次不起作用时,我然后将每个值转换为文本格式。不知道还有什么可能是错误的。感谢您可能愿意提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

当代码停止并且问题行以黄色突出显示时,转到VB编辑器的“即时”窗口(Ctrl + G),键入

? r.Value 

,然后按Enter。

您的数据可能包含需要检查/替换的错误值。