簡體   English   中英

用於將多個范圍復制到另一個工作簿中的特定工作表的 Excel VBA 代碼

[英]Excel VBA code to copy several ranges to specific sheet in another workbook

我在這里找到了一些代碼,可以將我的數據復制到另一個工作正常的工作表中。 我正在嘗試擴展它,以便它復制到另一個工作簿和特定工作表。

Sub Put_Data()
Dim lastrowDB As Long, lastrow As Long
Dim arr1, arr2, i As Integer

With Sheets("GasMe18-19")
    lastrowDB = .Cells(.Rows.Count, "A").End(xlUp).row + 1
End With

arr1 = Array("A", "G", "H", "L")
arr2 = Array("Q", "R", "S", "T")

For i = LBound(arr1) To UBound(arr1)
    With Sheets("GasMe18-19")
         lastrow = Application.Max(4, .Cells(.Rows.Count,   arr1(i)).End(xlUp).row)
         .Range(.Cells(4, arr1(i)), .Cells(lastrow, arr1(i))).Copy
         Sheets("Sheet1").Range(arr2(i) & 2).PasteSpecial xlPasteValues
    End With
Next
Application.CutCopyMode = False
End Sub

如何修改它以將數據范圍放入另一個工作簿? 我把 Sheet1 放在家庭工作簿中,一切看起來都很好,我喜歡現有的代碼庫。 原始 Workbook.Worksheet 有 4 列數據,我每隔幾天就會添加一次。 然后我復制並粘貼到另一個 Workbook2.WorkSheet2 中進行繪圖。 我更喜歡將第 4 行的所有內容復制到 4 列的最后一行數據。

您需要使用相關工作簿來限定您的范圍

Dim wbSource As Workbook, wbTarget As Workbook
Set wbSource = ThisWorkbook
Set wbTarget = Workbooks("TheTargetWBName")

...

For i = LBound(arr1) To UBound(arr1)
    With wbSource.Worksheets("GasMe18-19")
         lastrow = Application.Max(4, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row)
         .Range(.Cells(4, arr1(i)), .Cells(lastrow, arr1(i))).Copy
         wbTarget.Worksheets("Sheet1").Range(arr2(i) & 2).PasteSpecial xlPasteValues
    End With
Next

請注意sheets("Sheet1").Range(arr2(i) & 2).PasteSpecial xlPasteValues行現在如何使用先前聲明的變量wsTarget完全符合目標工作簿的wsTarget 首先使用以下行將此變量設置為工作簿的名稱:

Set wbTarget = Workbooks("TheTargetWBName")

如果目標工作簿未打開,則您只需更改為

Set wbTarget = Workbooks.Open("TheTargetWBName")

暫無
暫無

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

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