簡體   English   中英

如何將數據從多個工作表的一個Excel文件復制到多個工作表的另一個Excel文件中

[英]How do I copy the data from one Excel file of multiple sheets to another Excel file of multiple sheets

我有一個包含多個工作表的Excel文件,其中包含列名,值和工作表名。
我還有另一個具有列名稱和工作表名稱的多個工作表的excel文件。
我想在不更改工作表名稱的情況下將數據(列值)從一個Excel復制到另一個Excel,因為工作表名稱不同,但是列名稱相同。
很高興聽到一些建議。

我的建議是在單獨的模塊中定義功能,但在這里我為簡單起見在主模塊中定義了2個功能(激活工作簿和工作表)。 該宏位於單獨的Excel文件(Macro.xlsm)中。 同一位置中包含兩個Excel文件(Book1.xlsx和Book2.xlsx)。

在此處輸入圖片說明

我試圖用這個例子來回答,所以可以擴展到許多工作簿和工作表。

在此處輸入圖片說明

運行宏之前,先執行Book2.xlsx。

在此處輸入圖片說明

運行宏后,Book2.xlsx。 目的行被故意選擇低了一行:-)

在此處輸入圖片說明

Option Explicit

Dim wb01 As Workbook, wb02 As Workbook
Public paTh01 As Variant, paTh02 As Variant


'/Define your functions
'Function1 openBook(paTh0, wB0)
Function openBook(path0 As Variant, wB0 As Workbook)
        Set wB0 = Workbooks.Open(path0)
        wB0.Activate
End Function

'Function2 openSheet(wB0, "Sheet_Name")
Function openSheet(wB0 As Workbook, sheetName0 As String)
        wB0.Activate
        Sheets(sheetName0).Activate
End Function

'Main Module
Sub main()

    paTh01 = "D:\Book1.xlsx"
    paTh02 = "D:\Book2.xlsx"

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With

    Call openBook(paTh01, wb01)
    Call openSheet(wb01, "mySheet1")
    Range("A2:D4").Select
    With Selection
        .Orientation = 0
        .Copy
    End With

    'If you have a loop, you should put delay otherwise excel will crash
    Application.Wait (Now + TimeValue("0:00:01"))

    Call openBook(paTh02, wb02)
    Call openSheet(wb02, "mySheet2")
    Range("A3:D5").PasteSpecial xlPasteValues, Transpose:=False


    wb01.Close savechanges:=False
    DoEvents

    wb02.Close savechanges:=True
    DoEvents

End Sub

暫無
暫無

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

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