excel - 将 Excel 工作表移动到另一个具有不同工作表名称的现有工作簿作为新工作表
问题描述
我正在尝试创建一个 Vb 脚本以将 Excel 工作表复制/移动到另一个工作簿,因为新工作表('X' 是源工作簿'xsheet'(工作表名称应该是一个参数)是我想要复制到的工作表名称另一个名为“Y”的工作簿作为名称为“ysheet”的新工作表(工作表名称应该是一个参数)
注意:源工作簿和目标工作簿有多个工作表。
以下代码仅在源工作簿只有一张工作表时才有效。
Set objExcel1 = CreateObject("Excel.Application")
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel1.Workbooks.Open("C:\Users\x\test.xlsx")
Set objWorkbook1 = objExcel.Workbooks.Open("C:\Users\x\test1.xlsx")
objExcel.Visible = TRUE
Set objLastSheet = objWorkbook.Worksheets(1)
Set objWorksheet = objWorkbook1.Worksheets("Sheet1")
objWorksheet.Copy, objLastSheet
Set objWorksheet = objWorkbook.Worksheets("ff")
解决方案
忽略代码中的明显错误,这是一个带有一些背景信息的工作示例。
Option Explicit
Dim xl : Set xl = CreateObject("Excel.Application") 'start Excel
Dim wb1: Set wb1 = xl.Workbooks.Open("E:\Temp\Book1.xlsx") 'open source workbook
Dim wb2: Set wb2 = xl.Workbooks.Open("E:\Temp\Book2.xlsx") 'open target workbook
'Copy the worksheet in wb1 to the end of the sheets in wb2
'The Copy method expects Copy(before, after),
'and 'before' and 'after' are mutually exclusive
'so pass Null for the one you don't want
'(it defaults to Before)
'I will admit that it isn't immediately obvious from documentation that
'you can actually copy to other workbooks
wb1.Sheets("SheetToCopy").Copy Null, wb2.Sheets(wb2.Sheets.Count)
'Rename it as you like afterwards
wb2.Save()
wb1.Close()
wb2.Close()
xl.Quit()
Set xl = Nothing
WScript.Quit 0
推荐阅读
- r - 在R中按降序交换列之间的值
- java - 如何在 Android 中创建 Firebase 后台服务?
- ios - FCM 推送通知如何获取数据并显示自定义横幅
- angular - firebase auth/unauthorized-domain 错误,虽然我授权了域
- scala - 如何在scala中将函数的输出结果作为PUT请求提供?
- python - 在机器人关键字中实现增量数值变量
- .net - Docket.DotNet 的 Docker 桌面问题,第二次调用 _dockerClient.Containers.StartContainerAsync() 将失败并出现 OperationCanceledException
- nfc - 读取数据 ST25DV
- javascript - 无法从 NY Times API 检索数据
- kubernetes - Kubernetes - 重启后指标不显示