2017-04-12 248 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 
相关问题