簡體   English   中英

復制多列並以不同順序粘貼到另一個工作簿

[英]Copy multiple columns and paste to another workbook in different order

初學者的問題在這里。 這是我一直在努力的代碼

Private Sub Copy()

    Dim wb1 As Workbook
    Dim wb2 As Workbook

    Set wb1 = ThisWorkbook
(wb2 defined somewhere here)
With wb1.Sheets(1)
.Columns("A").Copy Destination = wb2.Sheets(2).Range("A1")
.Columns("B").Copy Destination = wb2.Sheets(2).Range("C1")
.Columns("C").Copy Destination = wb2.Sheets(2).Range("R1")
....

End With

End Sub

我想知道是否有較短的編寫方式? 謝謝。

編輯:似乎此代碼不起作用。 是因為我不能在兩個不同的工作簿之間使用Copy方法嗎?

您可以創建一個函數/子程序,因此不必復制每一行的完整行,也應該將wb2.Sheets(2).Range("A1")更改為wb2.Sheets(2).Columns("A")

函數/子可能看起來像這樣:

sub CopyColumn (Og_col as String, New_col as string)
    Dim wb1 As Workbook
    Dim wb2 As Workbook

    Set wb1 = ThisWorkbook
    'set wb2 = some other workbook

    wb1.Sheets(1).Columns(Og_col).Copy Destination = wb2.Sheets(2).Columns(New_col)

End Sub

然后在原始代碼中進行更改:

.Columns("A").Copy Destination = wb2.Sheets(2).Range("A1")
.Columns("B").Copy Destination = wb2.Sheets(2).Range("C1")
.Columns("C").Copy Destination = wb2.Sheets(2).Range("R1")
....

至:

Call CopyColumn("A", "A")
Call CopyColumn("B", "C")
Call CopyColumn("C", "R")
....

如果您有很多列,這應該是更好的代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM