复制和粘贴/插入行 – 粘贴比复制数据更多的数据

我有一个macros被设置为复制所有行中的数据从表1列A到D中的数据,并将其粘贴到工作表2中的列AD,插入它已经在工作表2中的数据上面。这个想法是创build一个持续的列表最新的数据在顶端。

这工作完全正常,直到今天 – 不知道发生了什么变化,我没有任何改变macros观。

它的运行方式应该是这样的,但是它会将所复制的数据永久地粘贴到Excel中的所有列上。

所以说,我在A,B,C和D列中有X行数据。macros正确地把这个数据粘贴到它应该从表1到表2。 但是,它也将这些数据粘贴到每一列(列XFD)。

因此,每4列与A / B / C / D具有相同的数据,直到excel用完列。

为什么这样做? 我如何阻止这种情况发生?

macros:

Sub CopyData() Dim i As Integer i = Sheets("Sheet1").Range("E1").Value 'E1 counts # of rows w/ data Sheets("Sheet1").Range("A2:D" & i).Copy Sheets("Sheet2").Activate Rows("2:2").Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False Sheets("Sheet2").Range("A1").Activate End Sub 

感谢您的帮助!

您正在复制四列,粘贴到16,384列。 您将不得不插入一个新行,然后复制源并使用目标的左上方单元格作为目标。

 Sub CopyData() Dim i As Integer, dim ws1 as worksheet set ws1 = worksheets("sheet1") i = ws1.Range("E1").Value 'E1 counts # of rows w/ data with worksheets("sheet2") .rows(2).resize(i, .columns.count).Insert Shift:=xlDown ws1.Range("A2:D" & i).Copy destination:=.cells(2, "A") .Activate End With End Sub 

我必须指定一个单元格,而不是整行,作为我想要粘贴复制数据的位置。 现在这个工作。