Workbook.Save
宏中的行将所有内容都保留了下来,尽管重要的是在宏末尾有一个保存步骤,但我不介意它是否只是开始保存然后将控制权交还给用户。
有没有这样的事情Workbook.Save BackGround
还是Workbook.Save vbModeLess
?
有没有这样的事情
Workbook.Save BackGround
还是Workbook.Save vbModeLess
?
绝对没有。可用于工作簿对象的方法的完整列表:
http://msdn.microsoft.com/zh-cn/library/office/ff847316(v=office.14).aspx
该.Save
方法没有任何可选参数:
http://msdn.microsoft.com/zh-cn/library/office/ff197585(v=office.14).aspx
正如我在上面的评论中所解释的那样,看来您的代码正在感知“问题”,这实际上不是问题,而是正常的和预期的功能:
当用户手动保存文件时,该应用程序不是交互式的。除了等待保存完成之外,用户无法执行任何其他操作。
当您调用.Save
工作簿对象的方法或时Application.CommandBars.ExecuteMso "FileSave"
,也会发生相同的情况。
这是必要的,因为(显然)保存时所做的更改不会保存,但工作簿的.Saved
属性会显示True
。
此属性用于确定是否显示“使用未保存的更改关闭此工作簿?”。用户关闭文件时出现对话框。如果该属性为True
,则用户可以关闭而无需任何提示。但是,当然,如果您让他们进行更改,这将不可避免地导致不必要的数据丢失,因为用户随后可能会关闭状态为已保存的文件True
以及对工作簿的未保存的更改(尚未反映在Saved
属性中)。
(注意:可能还有更多的技术原因,但这只是常识性的解释)
如果保存文件的时间很麻烦,那么我至少可以考虑几个选择,首先,您需要考虑通知用户要保存文件,这可能需要多达45个时间秒。这样,他们不会认为程序没有响应或挂起。您可以使用MsgBox
或UserForm
相当容易地执行此操作。
或者,您可以使用上述两种方法中的任何一种来提示用户,即“您要保存文件吗?”。
等等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句