繁体   English   中英

将 Excel 工作表移动到另一个具有不同工作表名称的现有工作簿作为新工作表

[英]Move an Excel Work Sheet to Another existing workbook with different sheet name as new sheet

我正在尝试创建一个 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM