复制和粘贴/插入行 – 粘贴比复制数据更多的数据
我有一个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
我必须指定一个单元格,而不是整行,作为我想要粘贴复制数据的位置。 现在这个工作。