首页 > 解决方案 > 在“静默”模式下将 Excel 工作表另存为 csv 的 VBA 代码

问题描述

我将交易作为 CSV 文件保存到网络驱动器。一个事务最多可以包含 3 个 CSV 文件。由于它是一个网络驱动器,这可能需要几秒钟,具体取决于网络流量。

因此,如果用户单击“提交”按钮,屏幕会闪烁最多 3 次,每个 CSV 文件都被保存。从技术上讲,一切正常,但我想抑制这些操作在屏幕上明显发生,而是显示一个消息框,一旦 CSV 保存到网络驱动器就会消失。

我可以弄清楚消息框部分,但我找不到任何解决“隐形保存”部分的内容。我使用的代码是:

Set shtToExport = WS3     'Sheet to export as CSV for Transaction
 Set wbkExport = Application.Workbooks.Add
shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count) 
Application.DisplayAlerts = False 'Overwrite without asking
wbkExport.SaveAs Filename:=Path & Filename1 & ".csv", FileFormat:=xlCSV, Local:=True
'Create CSV Backup to retieve Transaction and Bonuspoint Info for transaction
wbkExport.SaveAs Filename:=Path & Filename2 & ".csv", FileFormat:=xlCSV, Local:=True
Application.DisplayAlerts = True
wbkExport.Close SaveChanges:=False

WS3、Path、Filename1 和 Filename2 在代码的其他地方定义

有任何想法吗?

标签: excelvbacsvsave-assilent

解决方案


尝试使用:Application.ScreenUpdating = False

这应该会停止屏幕闪烁,但是之后您应该将其设置为 true。

让我知道这是否有效谢谢!


推荐阅读