python - 如何将数据从多个工作表的一个 Excel 文件复制到另一个多个工作表的 Excel 文件
问题描述
我有一个包含列名和值以及工作表名的多张工作表的 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
推荐阅读
- php - WhereHas 有条件
- return - “回车”的示例用例
- javascript - 为什么现代 ES 优于浏览器支持 ES
- c# - 我无法使用 json 格式的 httpclient 发送论坛数据
- android - 无法在 Jetpack Compose 中以交互模式键入文本
- c++ - 将具有移动 c-tor 的局部变量移动到具有参数的函数中
- wordpress - 带有 TranslatePress 的语言子文件夹
- sql - 针对 Oracle db 控制中断类型 SQL
- reporting-services - 如果子报表不返回任何内容,则 SSRS 收缩行 - 以及子报表之间的行
- php - PHP | 下载 PDF 文件,适用于 Chrome,但不适用于 Safari