首页 > 解决方案 > Excel 停止在后台打开工作簿中的工作表计算

问题描述

我有这个文件(文件 1)不仅供我使用,它还有一些取决于条目的计算。如果文件本身被打开,它运行平稳,但通常与另一个文件(文件 2)一起使用

当文件 2 在具有多个计算的工作表上打开时,如果我在文件 1 中输入数据,则计算需要一些时间,而当文件 2 关闭或在不需要(大量)计算的工作表上时,它会计算在一个实例中。

现在我的问题是,是否有可能有一个代码,如果未选择文件(打开,但不在前台),则在工作表中禁用计算,但一旦选择文件(即使关闭文件) 计算再次打开?我知道可以通过将计算设置为手动并计算某些操作,但这会关闭所有打开文件的计算,这是不行的。

标签: excelvba

解决方案


您可能会发现该EnableCalculation属性可以在这里为您工作:请参阅https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.enablecalculation

您可以在工作簿激活和停用事件中切换该属性值。下面的示例代码:

Private Sub Workbook_Activate()
    Sheet1.EnableCalculation = True
    Application.StatusBar = "Calc enabled."
End Sub

Private Sub Workbook_Deactivate()
    Sheet1.EnableCalculation = False
    Application.StatusBar = "Calc disabled."
End Sub

Private Sub Workbook_Open()
    Sheet1.EnableCalculation = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheet1.EnableCalculation = True
End Sub

我添加了几个其他事件来展示您可能希望在其他时间如何设置该属性。


推荐阅读