Excel Macro供每个循环复制不同工作表中的粘贴范围,并粘贴到下一列



我有几个工作表(工作表A,工作表B,工作表C(在工作簿中。我想将每个工作表中的每个工作表复制相同的范围,并将它们粘贴到另一个工作簿的工作表,每个工作簿的工作表中的每个工作表。我知道如何编写代码复制,但是困难的部分是粘贴。这就是我的想法:

sub copypaste ()
dim wb as workbook 'this workbook
dim destination as workbook 'destination workbook
dim ws as worksheet
dim ws1 as worksheet '(in this workbook)
dim ws2 as worksheet '(in this workbook)
dim ws3 as worksheet '(in this workbook)
dim DestWorksheet as worksheet 
For Each ws in wb.worksheets  (referring to ws1, ws2, and ws3)
Range.("D1:D231").Copy
DestWorksheet.(I WANT TO PASTE DATA FROM WS1 in Column A in the destination worksheet, Ws2 in Column B, Ws3 in Column3) etc.

尝试以下内容。该代码同时使用工作表和列的索引,因此在第n个表迭代值也将粘贴到第n列。

请记住,我已经丢弃了.Copy。如果您仅复制值,并且为此,我的代码速度更快,则无需此功能。如果您确实需要复制比仅值更多的值,请将.Range(.Cells(1, i), .Cells(231, ...行替换为复制粘贴行。

Sub copypasta()
Dim i As Integer
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
For i = 1 To wb.Sheets.Count
    With Workbooks(DESTINATION).Sheets(DESTINATION)
        .Range(.Cells(1, i), .Cells(231, i)).Value = wb.Sheets(i).Range("D1:D231").Value
    End With
Next i
End Sub

不要使用复制和粘贴,那是效率低下的

只是将一个范围的值放在另一个位置,在您想要的位置

DestWorksheet.Range("A1:A231").Value2 = Range("D1:D231").Value2
ws2.Range("B1:B231").Value2 = Range("D1:D231").Value2
ws3.Range("C1:C231").value2 = Range("D1:D231").Value2

最新更新