2017-04-12 177 views
0

我有兩個工作簿,第一個稱爲classeur1,第二個稱爲classeur2。VBA從一個工作簿複製/粘貼值到另一個

我無法從Sheet1(從Workbook1)到Sheet2(從Workbook2)複製/粘貼合併行。

我想知道如何去做。

其實我試過但沒有結果。這裏是我的代碼:

Sub test() 
    Dim finalrow As Long 
    Workbooks("workbook1").Worksheets("sheet1").Range("D1:D" & finalrow).Value = Workbooks("workbook2").Worksheets("sheet2").Range("A2:A" & finalrow).Value 
End Sub 
+1

您遇到的問題不是完全限定的工作簿名稱/路徑。編譯器並不知道如何區分工作簿,因爲它只提供很少的信息來處理。從幾天前檢查我的這個答案 - 它闡述瞭如何使用多個工作簿。 http://stackoverflow.com/questions/43287385/how-to-aggregate-compile-multiple-excel-spreasheets-csv-into-separate-sheets/43287810#43287810 –

回答

1

你的一個範圍開始於D1,另一個在A2但都去finalRow。這使他們有不同的尺寸範圍。我會假設你已經給了FinalRow一個行號,但我不會使用它。

Option Explicit 

Sub test() 
    With Workbooks("Classeur2").Worksheets("Feuil2") 
     With .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp)) 
      Workbooks("Classeur1").Worksheets("Feuil1").Range("D1").Resize(.Rows.Count, .Columns.Count) = .Value 
     End With 
    End With 
End Sub 
0

您可以嘗試通過選擇範圍和插入 - >表格 - >表格來定義表格的名稱。假設名稱爲「Table1」

Option Explicit 

Sub CopyTable() 
'Select the defined Table1 from classeur1 workbook and copy it to classeur2 starting at cell D1 

Workbooks("classeur1").Worksheets("Sheet1").Range("Table1[#All]").Copy _ 
    Workbooks("classeur2").Worksheets("Sheet1").Range("D1") 
End Sub 
相關問題