2017-09-20 29 views
0

我需要將A2從未知列長度複製到新工作簿。 另一個工作簿有其他標題,我需要將A列沒有標題與C列與另一個標題和列J需要去列A等。將具有不同行長度的列複製到另一個工作簿中

我想這個代碼

Sub SO() 

Dim lastRow As Long 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set ws1 = Workbooks("Workbook1.xlsm").Worksheets("Orderheader") 
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("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

End Sub 

一次得手罰款,現在它不工作。它似乎也不適用於我真正需要的多列。

現在我得到一個錯誤「對象的方法‘範圍’「_Worksheet失敗」

我在做什麼錯?

回答

0

在您發佈的代碼中,如果在運行宏時它未處於活動狀態,您應該使用圖紙名稱限定所有單元格。您需要進一步解釋您的其他請求,因爲它不清楚(「J列需要去A列等」)。

Sub SO() 

Dim lastRow As Long 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set ws1 = Workbooks("Workbook1.xlsm").Worksheets("Orderheader") 
Set ws2 = Workbooks("Workbook2.xlsm").Worksheets("Sheet1") 

With ws1 
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    .Range(.Cells(2, 1), .Cells(lastRow, 1)).Copy 
    ws2.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
End With 

End Sub 
+1

謝謝你的幫助。我想複製多個列。所以我複製了之間的代碼並更改了ws2的單元格和目標。這似乎工作。 – MLam

相關問題