这段代码检查Excel 365是否开启了自动保存功能,并在开启时将其关闭。它会显示更改前后的状态消息。
注意:以下代码仅适用于Office 365订阅用户且Excel版本为2016或更高版本。
Sub ChkAutoSv()
Dim AutoSv As Boolean
If Val(Application.Version) > 15 Then
AutoSv = ActiveWorkbook.AutoSaveOn
MsgBox "AutoSave set to: " & AutoSv
If AutoSv Then ActiveWorkbook.AutoSaveOn = False
AutoSv = ActiveWorkbook.AutoSaveOn
MsgBox "AutoSave now set to: " & AutoSv
End If
End Sub
If val(Application.Version) > 15 Then ThisWorkbook.AutoSaveOn = False
说实话,我不确定为什么会有消息框,或者自动保存的getter... - Sancarn增强Any1There解决方案
我刚刚看到有必要通过更新的答案来恢复这篇文章,以将其创建为在O365上使用工作簿时的强制性功能。
Sub Exec_Example()
...
Set WBToWorkIn = Workbooks.Open(TxtFilePath): DoEvents
Call Exec_TurnAutoSave(False,WBToWorkIn)
...
End Sub
Sub Exec_TurnAutoSave(IsTurnAutoSaveOn As Boolean, Optional ByVal WBToTurn As Workbook)
If WBToTurn Is Nothing Then Set WBToTurn = ThisWorkbook
Dim IsAutoSaveOn As Boolean
If Val(WBToTurn.Parent.Version) > 15 Then WBToTurn.AutoSaveOn = IsTurnAutoSaveOn
Set WBToTurn = Nothing
End Sub
理由
随着O365的大规模部署,通常默认启用此功能,而且在调试或执行代码时似乎会导致Excel实例崩溃。在处理工作簿自身的编码过程中,最安全的方法是将其关闭。
myWorkbook.AutoSaveOn = False
。这行代码的作用是关闭工作簿的自动保存功能。 - Siddharth Rout