修改Excel宏代码:导入任意名称工作表并重命名为Master export
修改后的Excel宏代码解决方案
以下是调整后的宏代码,可实现导入目标文件的所有工作表,并将每个导入的工作表重命名为Master export(注:若导入多个工作表,Excel会自动在名称后添加序号区分,比如Master export (2)):
Sub export_sheet() ' 关闭屏幕更新和提示框 Application.ScreenUpdating = False Application.DisplayAlerts = False ' 删除现有工作表(按需调整) Call delete_sheet ' 设置目标工作簿 Dim DestinationWb As Workbook Set DestinationWb = ActiveWorkbook Dim FileToOpen As Variant FileToOpen = Application.GetOpenFilename(Title:="浏览目标文件并导入", FileFilter:="Excel文件 (*.xls*),*xls*") If FileToOpen <> False Then Set OpenBook = Application.Workbooks.Open(FileToOpen) ' 遍历源工作簿的所有工作表 Dim ws As Worksheet For Each ws In OpenBook.Worksheets ' 复制工作表到目标工作簿末尾 ws.Copy After:=DestinationWb.Sheets(DestinationWb.Sheets.Count) ' 重命名刚复制的工作表 DestinationWb.Sheets(DestinationWb.Sheets.Count).Name = "Master export" Next ws End If ' 关闭源工作簿 OpenBook.Close False ' 恢复屏幕更新和提示框 Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
关键修改说明
- 移除原代码中指定固定工作表名的数组逻辑,改用
For Each ws In OpenBook.Worksheets遍历源文件所有工作表 - 将原按名称复制工作表的操作,改为遍历每个工作表直接复制
- 在复制完成后立即对新工作表执行重命名操作
- 优化变量定义,将原字符串类型的
Destination改为工作簿对象DestinationWb,代码逻辑更直观
内容的提问来源于stack exchange,提问作者Aabo
相关产品推荐
相关产品推荐

