打开其他工作簿时,宏运行速度非常慢

时间:2015-10-20 04:28:39

标签: excel excel-vba excel-formula vba

我在Excel中使用VBA工具,当我尝试通过VBA保存工具时,如果没有其他工作簿打开,该工具将在10秒内保存。即使打开其他工作簿,宏也应该在10秒内保存。

如果其他工作簿处于打开状态,则保存工具需要10分钟以上,但此工具/代码未与任何打开的工作簿链接。当我尝试通过VBA保存此工具时,我认为它正在计算其他工作簿中的所有公式,然后保存此工具。

我经常使用此工具,每次使用此工具时,我都不想关闭所有其他工作簿。

是否可以解决此问题?

1 个答案:

答案 0 :(得分:2)

如果计算导致延迟,则应确认

将其放入ThisWorkbook模块

Option Explicit

Private Sub Workbook_Open()
    enableCalcs True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    enableCalcs False
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    enableCalcs False
End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    enableCalcs
End Sub

Private Sub enableCalcs(Optional ByVal opt As Boolean = True)
    Dim wb As Workbook, ws As Worksheet

    Application.Calculation = IIf(opt, xlCalculationAutomatic, xlCalculationManual)
    For Each wb In Workbooks
        For Each ws In Worksheets
            ws.EnableCalculation = opt
        Next
    Next
End Sub
相关问题