excel - 将工作表复制到(一个工作表的)新工作簿而不打开它
问题描述
我想将 ActiveWorkbook 中的工作表复制到新创建的工作簿中。新创建的工作簿将仅包含复制的工作表。
我也不希望它在复制工作表时打开。我想默默地将工作表复制到新创建的工作簿中。
如果我执行以下操作,则新创建的书有 3 张,而不仅仅是一张,并且在复印时打开。它还问我是否想用宏保存它,而我只想复制 sheet1,所以不需要任何宏,如何解决它以满足我的需要?
ThisWorkbook.Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs "C:\DestinationWb.xlsx", FileFormat:=51
解决方案
必须打开新创建的工作簿 - 否则您将如何保存它?- 但切换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
推荐阅读
- reactjs - 将 Cognito 授权附加到 axios 发布请求
- android - 房间数据库迁移无法正确处理新表创建
- java - 设置颜色搜索栏
- android - admob 广告 ID 可以在公共 GitHub 存储库上共享吗?
- javascript - 如何仅使用 JS 键事件检测实际字符(用于文本编辑器)
- java - 如果我想在返回 false 或抛出异常时执行相同的代码怎么办?
- ruby-on-rails - 将宝石“附加”到 Rails 以防止无处不在的“需要”?
- google-cloud-dataprep - 将 Google Cloud Storage 与 Google 数据准备结合使用
- angular6 - 如何解决 Angular 6 中的 api url 问题
- java - 当窗口尚未加载任何内容时,如何在新窗口上访问警报?