我的excel文件包含很多公式,因此我希望它在打开后立即将计算模式设置为手动。否则计算会自动开始,我必须等待数小时。我找到了这个页面:
http://excel.tips.net/T001988_Forcing_Manual_Calculation_For_a_Workbook.html
应该能够做到这一点。但它不适合我的excel文件。它声明在VBA代码的“ThisWorkbook”部分中,应输入以下代码:
Private Sub Workbook_Open()
Application.Calculation = xlManual
Application.CalculateBeforeSave = False
End Sub
正如所指出的,它在我的情况下不起作用。有人有替代解决方案吗?
提前致谢!
答案 0 :(得分:8)
解决此问题的最佳方法是在与您要打开的文件相同的文件夹中创建名为“launcher.xlsm”的Excel。在'launcher'文件中,将以下代码放在'Workbook'对象中,但将常量TargetWBName
设置为您要打开的文件的名称。
Private Const TargetWBName As String = "myworkbook.xlsx"
'// First, a function to tell us if the workbook is already open...
Function WorkbookOpen(WorkBookName As String) As Boolean
' returns TRUE if the workbook is open
WorkbookOpen = False
On Error GoTo WorkBookNotOpen
If Len(Application.Workbooks(WorkBookName).Name) > 0 Then
WorkbookOpen = True
Exit Function
End If
WorkBookNotOpen:
End Function
Private Sub Workbook_Open()
'Check if our target workbook is open
If WorkbookOpen(TargetWBName) = False Then
'set calculation to manual
Application.Calculation = xlCalculationManual
Workbooks.Open ThisWorkbook.Path & "\" & TargetWBName
DoEvents
Me.Close False
End If
End Sub
将常量“TargetWBName”设置为您要打开的工作簿的名称。
此代码只是将计算切换为手动,然后打开文件。然后启动器文件将自动关闭。
*注意:如果您不希望每次打开此文件时都提示“启用内容”(取决于您的安全设置),您应该暂时删除“me.close”以防止它自行关闭,保存文件和将其设置为受信任,然后在再次保存之前重新启用“me.close”调用。或者,您可以在True
Me.Close