打开excel文件时如何将计算模式设置为手动?

时间:2013-06-14 10:36:02

标签: excel vba excel-vba

我的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

正如所指出的,它在我的情况下不起作用。有人有替代解决方案吗?

提前致谢!

1 个答案:

答案 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

之后将False设置为Me.Close