由于我经常遇到问题,因此滴答在设置中消失:在保存之前计算。 (我不知道确切的用语,因为我的办公室版本是德语版)。
这就是为什么我尝试使用VBA解决问题的原因。我在Excel文件中使用了以下代码:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
If Application.CalculateBeforeSave = False Then
If MsgBox("Caution! Should >calculatebeforesave< be activated?", vbYesNo) = vbYes Then
Application.CalculateBeforeSave = True
Else
End If
Else
End If
End Sub
我把它放入&#34; Thisworkbook&#34;。但我希望这个代码能够在我使用的每个工作簿中运行(至少所有这些都允许使用宏)。
我的建议是编写ActiveWorkbook_BeforeSave ...而不是Workbook_BeforeSave,然后将代码放在PERSONAL宏文件的模块中。但这并不奏效。
答案 0 :(得分:2)
我认为您需要使用Excel应用程序事件而不是工作簿事件来实现此目的,例如在此example
在您的PERSONAL工作簿中右键单击并插入一个类模块(Class 1)
在类1中添加类似于下面的内容:
Public WithEvents appevent As Application
Private Sub appevent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
'Add what you would like to happen before a workbook closes
End Sub
接下来打开ThisWorksheet并沿着这些行添加代码(我认为在Excel启动时会自动打开PERSONAL工作簿):
Dim myobject As New Class1
Private Sub Workbook_Open()
Set myobject = Application
End Sub