将数据从1个工作簿复制到另一个工作簿

时间:2017-04-18 07:02:04

标签: excel-vba excel-2007 vba excel

我想使用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

请帮忙。提前谢谢。

1 个答案:

答案 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列。