2017-04-18 171 views
0

我想使用Excel vba將數據從一個工作簿中的特定列複製到另一個工作簿。例如,我想將工作簿1中的A,B,E,G,H,M,N列複製到工作簿2,從A2開始。將數據從1個工作簿複製到另一個工作簿

目前,我正在使用這個例子,但它沒有達到我希望宏執行的目的。我已經包含了我目前使用的代碼,如下所示:

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

只給你一個解釋和一個例子:

您使用

ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy 
        ^    ^
        |     | 
        Column 1   Column 1 

所以這個副本的範圍從第1列至第2排和最後一排之間的1列。

如果將其更改爲

ws1.Range(Cells(2, "A"), Cells(lastRow, "C")).Copy 

它將列A的範圍複製到d(A,B,C和d)第2行和最後一行之間。

如果您在上面的示例中不需要列B,則需要在2個複製/粘貼操作中獨立地複製和粘貼列A和列C + D.

相關問題