Python 如何将数据从一个包含多个工作表的Excel文件复制到另一个包含多个工作表的Excel文件

Python 如何将数据从一个包含多个工作表的Excel文件复制到另一个包含多个工作表的Excel文件,python,excel,Python,Excel,我有一个excel文件,其中包含多个具有列名、值和工作表名的工作表。 我有另一个excel文件,其中包含多个具有列名和工作表名的工作表。 我想将数据(列值)从一个excel复制到另一个excel,而不更改图纸名称,因为图纸名称不同,但列名相同。 很高兴听到一些建议。我的建议是在单独的模块中定义函数,但为了简单起见,我在主模块中定义了两个函数(激活工作簿和工作表)。宏位于单独的excel文件(macro.xlsm)中。同一位置包含两个excel文件(Book1.xlsx和Book2.xlsx)

我有一个excel文件,其中包含多个具有列名、值和工作表名的工作表。
我有另一个excel文件,其中包含多个具有列名和工作表名的工作表。
我想将数据(列值)从一个excel复制到另一个excel,而不更改图纸名称,因为图纸名称不同,但列名相同。

很高兴听到一些建议。

我的建议是在单独的模块中定义函数,但为了简单起见,我在主模块中定义了两个函数(激活工作簿和工作表)。宏位于单独的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