解决listobject粘贴特殊-运行时错误1004

时间:2019-04-16 18:11:19

标签: excel vba listobject

我想将所有数据从一个表移到另外4个表中。使用以下代码,我收到一个粘贴特殊错误。该代码很长,因此相关代码段发布在下面。

Set tbl2 = ws1.ListObjects("Table2")
Set tbl3 = ws2.ListObjects("Table3")
Set tbl4 = ws3.ListObjects("Table4")
Set tbl5 = ws4.ListObjects("Table5")

For i = 1 To tbl1.ListRows.Count
    tbl1.ListRows(i).Range.Copy

    tbl2.ListRows.Add 1, True
    tbl2.ListRows(1).Range.PasteSpecial xlPasteFormats
    tbl2.ListRows(1).Range.Value = tbl1.ListRows(i).Range.Value

    tbl3.ListRows.Add 1, True
    tbl3.ListRows(1).Range.PasteSpecial xlPasteFormats
    tbl3.ListRows(1).Range.Value = tbl1.ListRows(i).Range.Value


    tbl4.ListRows.Add 1, True
    tbl4.ListRows(1).Range.PasteSpecial xlPasteFormats
    tbl4.ListRows(1).Range.Value = tbl1.ListRows(i).Range.Value

    tbl5.ListRows.Add 1, True
    tbl5.ListRows(1).Range.PasteSpecial xlPasteFormats
    tbl5.ListRows(1).Range.Value = tbl1.ListRows(i).Range.Value

Next i

“运行时错误1004”: 范围类别的粘贴失败

此错误是由第一行粘贴特殊行触发的。

有关如何更正此问题的任何想法?我已经搜索了一段时间,但尚未找到解决方案。

谢谢!

1 个答案:

答案 0 :(得分:1)

似乎您只是将tbl1的内容附加到其他表中。

将源DataBodyRange复制到2D变量数组中,而不是使用剪贴板:

Dim content As Variant
content = tbl1.DataBodyRange.Value

然后将新行添加到目的地:

tbl2.ListRows.Add

然后将2D数组转储到该位置:

tbl2.ListRows(tbl2.ListRows.Count).Range.Resize(UBound(content, 1)).Value = content

漂洗并重复执行每个目标表...应该几乎是即时的。