当复制到不同的工作表时Excel 400错误

我已经看了100个不同的解决scheme来解决这个不断出现的错误。 它是一个只有数字“400”的popup框和一个OKbutton。

从即时复制的表单被称为“前端”

我的代码如下所示:

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是非常新的

如果您尚未完全限定您希望使用的工作簿/工作表,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 

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

更改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 

参考: 使用VBA代码复制和粘贴数据