首页 > 解决方案 > 将工作表复制到(一个工作表的)新工作簿而不打开它

问题描述

我想将 ActiveWorkbook 中的工作表复制到创建的工作簿中。新创建的工作簿将包含复制的工作表。

我也不希望它在复制工作表时打开。我想默默地将工作表复制到新创建的工作簿中。

如果我执行以下操作,则新创建的书有 3 张,而不仅仅是一张,并且在复印时打开。它还问我是否想用宏保存它,而我只想复制 sheet1,所以不需要任何宏,如何解决它以满足我的需要?

ThisWorkbook.Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs "C:\DestinationWb.xlsx", FileFormat:=51

标签: excelvba

解决方案


必须打开新创建的工作簿 - 否则您将如何保存它?- 但切换Application.ScreenUpdating可能会促进您正在寻找的“无声”副本。切换Application.DisplayAlerts还将根据需要抑制警报。

Application.ScreenUpdating = False
Application.DisplayAlerts = False

ThisWorkbook.Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs FileName:="C:\DestinationWb.xlsx", FileFormat:=51
ActiveWorkbook.Close

Application.DisplayAlerts = True
Application.ScreenUpdating = True

推荐阅读