我想使用Excel vba将特定列中的数据从一个工作簿复制到另一个工作簿。例如,我想将工作簿1中的A,B,E,G,H,M,N列复制到工作簿2,从A2开始。
目前,我正在使用这个示例,但它并没有达到我希望宏行动的目的。我已经包含了我目前正在使用的代码,如下所示:
Sub SO()
Dim lastRow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Workbooks("workbook1.xlsm").WorkSheets("Sheet1")
Set ws2 = Workbooks("workbook2.xlsm").WorkSheets("Sheet1")
lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy
ws2.Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
请帮忙。提前谢谢。
答案 0 :(得分:0)
只是给你一个解释和一个例子:
您使用
ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy
^ ^
| |
Column 1 Column 1
因此,这会将第2行和最后一行之间的范围从第1列复制到第1列。
如果您将其更改为
ws1.Range(Cells(2, "A"), Cells(lastRow, "C")).Copy
它将复制第2行和最后一行之间的列A到D(A,B,C和D)的范围。
如果您在上面的示例中不需要B列,则需要在2个复制/粘贴操作中独立地复制和粘贴A列和C + D列。