作为参考,我尝试使用从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,但将每个公式结果复制/粘贴为值。当宏第一次不起作用时,我然后将每个值转换为文本格式。不知道还有什么可能是错误的。感谢您可能愿意提供的任何帮助。
答案 0 :(得分:1)
当代码停止并且问题行以黄色突出显示时,转到VB编辑器的“即时”窗口(Ctrl + G),键入
? r.Value
,然后按Enter。
您的数据可能包含需要检查/替换的错误值。