小编Tom*_*ner的帖子

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

我正在使用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
Run Code Online (Sandbox Code Playgroud)

当用户单击保存图标/点击ctrl + S时,输入文件名,然后单击保存以保存为无宏的Excel工作簿(默认和所需的文件类型),系统会提示它们,并显示以下消息:

以下功能无法保存在无宏工作簿中:

•VB项目

要保存具有这些功能的文件,请单击"否",然后在"文件类型"列表中选择启用宏的文件类型.

要继续保存为无宏工作簿,请单击"是".

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

我已经遍地搜索并了解我可能能够将代码添加到自动删除的工作簿对象中,以便Excel没有VB项目来导致此消息,但这需要每个用户更改信任中心设置(信任访问权限) VBA项目对象模型)我想避免.

我也看到了使用的建议:

Application.DisplayAlerts = False
Run Code Online (Sandbox Code Playgroud)

但不能让这个工作.它的每个使用示例似乎都在一个也在处理文档保存的子类中,而在我的情况下,BeforeSave子节点在文档以默认的非vba方式保存之前结束,这可能是为什么它不起作用?

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

对于我可能已经分配的任何废话道歉,我对VBA的经验非常有限.

excel vba excel-vba excel-2010

14
推荐指数
1
解决办法
8118
查看次数

标签 统计

excel ×1

excel-2010 ×1

excel-vba ×1

vba ×1