您好我是VBA和stackoverflow的新手。
我的程序只选择Table1并将其复制到Table2的末尾。代码如下。
Sub c_p()
Application.Goto Reference:="Table1"
Selection.Copy
Application.Goto Reference:="Table2"
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
ActiveSheet.Paste
End Sub
当我运行程序时,它会给出"运行时错误' 1004' &#34 ;.这一行中的错误:
ActiveSheet.Paste
我知道有更好的方法可以解决这个问题,而不是使用选择,虽然这些对我很有意思,但我也想知道问题的原因。
感谢您的帮助。
答案 0 :(得分:1)
您的问题似乎与" Selection.ListObject.ListRows.Add AlwaysInsert:= False"复制数据后。它似乎导致系统忘记"复制的数据。
这可能是一个合适的解决方案
Sub c_p()
Application.Goto Reference:="Table1"
Selection.Copy
Application.Goto Reference:="Table2"
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Application.Goto Reference:="Table2"
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
ActiveSheet.Paste
End Sub
答案 1 :(得分:1)
非常感谢
你是对的,系统忘记了复制的数据..
关于代码 - 您的更改对遗忘的信息没有帮助,但经过一些修改后效果很好。
这是最终代码:
Sub c_p2()
Application.Goto Reference:="Table2"
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Application.Goto Reference:="Table1"
Selection.Copy
Application.Goto Reference:="Table2"
Selection.End(xlDown).Select
Selection.End(xlDown).Select
ActiveSheet.Paste
End Sub