gpt4 book ai didi

vba - 将新的 Excel 文档保存为无宏工作簿而不提示

转载 作者:行者123 更新时间:2023-12-01 17:53:34 29 4
gpt4 key购买 nike

我使用的是 Excel 2010。我有一个启用 Excel 宏的模板,该模板具有与文本文件的数据连接,该文本文件设置为在使用此模板创建新文档时自动刷新。

以下宏位于“ThisWorkbook”对象中,用于在保存新文档之前删除数据连接:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop

End Sub

当用户单击“保存”图标/按 ctrl+S,输入文件名,然后单击“保存”以另存为无宏 Excel 工作簿(这是默认且必需的文件类型)时,系统会提示一条消息,指出:

The following features cannot be saved in macro-free workbooks:

• VB project

To save a file with these features, click No, and then choose a macro-enabled file type in the File Type list.

To continue saving as a macro-free workbook, click Yes.

是否可以防止出现此消息并让 Excel 假定用户想要继续使用无宏工作簿?

我已经进行了全面搜索并了解到我可以向工作簿对象添加代码以删除自身,以便 Excel 没有 VB 项目导致此消息,但这需要每个用户更改信任中心设置(信任访问 VBA 项目对象模型),这是我想避免的。

我还看到了使用的建议:

Application.DisplayAlerts = False

但无法让它工作。它的每个使用示例似乎都在一个子程序中,该子程序也处理文档的保存,而在我的情况下,BeforeSave 子程序在以默认的非 vba 方式保存文档之前结束,这也许就是它不起作用的原因?

子结束后/实际保存之前,此属性是否重置为默认 True?

对我可能发表的任何废话表示歉意,我对 VBA 的经验非常有限。

最佳答案

我无法在 Excel 2010 上进行测试,但至少在 2016 年,它运行良好:

Sub SaveAsRegularWorkbook()

Dim wb As Workbook
Dim Path As String

Set wb = ThisWorkbook
Path = "T:\he\Path\you\prefer\"
Application.DisplayAlerts = False
Application.EnableEvents = False
wb.SaveAs Filename:=Path & "Test.xlsx", FileFormat:=51
Application.DisplayAlerts = True
Application.EnableEvents = True

End Sub

尝试一下。

关于vba - 将新的 Excel 文档保存为无宏工作簿而不提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596268/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com