复制到其他工作表时出现Excel错误400

时间:2016-06-08 14:30:48

标签: excel vba excel-vba copy

我已经查看了100种不同的解决方案来修复此错误并不断显示。它是一个弹出框,只有数字“400”和一个OK按钮。

从中复制的工作表称为“前端”

我的代码如下所示:

Sub transfer()

range("C2").Select
Selection.Copy
Worksheets("Raw Data").Select
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
range("A" & lMaxRows + 1).Select
Selection.Paste

End Sub

我只是试图将数据从一张纸移动到另一张纸中的下一个空行,但不断收到此错误。任何帮助都会非常感激,因为我对VBA非常陌生

2 个答案:

答案 0 :(得分:1)

如果您没有完全限定您希望它使用的工作簿/工作表,VBA将使用活动工作表。尝试这样的事情:

Sub transfer()
Dim sourceSheet as Worksheet : Set sourceSheet = ThisWorkbook.Worksheets("Front End")
Dim destSheet as Worksheet : Set destSheet = ThisWorkbook.Worksheets("Raw Data")
lMaxRows = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row

destSheet.Range("A" & lMaxRows + 1).Value = sourceSheet.range("C2").Value

End Sub

要将值直接从一个地方复制到另一个地方,您不需要使用复制,粘贴或选择;你可以将one的值设置为另一个的值。

答案 1 :(得分:0)

Selection.Paste更改为Selection.PasteSpecial Paste:=xlPasteValues似乎对我有用:

Sub transfer()

Range("C2").Select
Selection.Copy
Worksheets("Raw Data").Select
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & lMaxRows + 1).Select
'Selection.Paste
Selection.PasteSpecial Paste:=xlPasteValues

End Sub

参考:Copying and pasting data using VBA code