【问题标题】:Turn off enable calculation关闭启用计算
【发布时间】:2018-10-17 13:34:42
【问题描述】:

我有一个包含许多不同公式的工作簿,其中有一个名为 Map 的工作表,每次我将新数据输入不同的工作表时,我都不需要自动计算。我在此工作表上有以下 VBA 代码。问题是我需要手动转到 Developer 选项卡、Properties、EnableCalculation,然后选择 False。当我这样做时,代码可以完美运行。但是,当我关闭并重新打开工作簿时,属性中的 EnableCalculation 已自动更改为 True。我似乎无法想出一个代码来在打开工作簿时将这个属性在这个单独的工作表上设置为 False。

任何有关如何执行此操作的建议将不胜感激。我是编码新手,就像这是我第一次尝试编写 VBA 代码,我花了几天时间才得到下面的内容。所以越描述越好。谢谢!

Sub docalc()
Dim oldCalc As Boolean
oldCalc = ActiveSheet.EnableCalculation
ActiveSheet.EnableCalculation = False
ActiveSheet.EnableCalculation = True
ActiveSheet.EnableCalculation = oldCalc
End Sub

【问题讨论】:

    标签: excel vba properties calculation


    【解决方案1】:

    插入一个名为Sub Workbook_Open() 的模块并添加行ws.EnableCalculation = False,其中ws 是您要为其设置属性的任何工作表——例如worksheets("Sheet4")worksheets(4)。每次打开工作簿时,Workbook_Open() 子程序都会自动运行。

    【讨论】:

    • Sub Workbook_Open() Worksheets("Map").EnableCalculation = False Dim oldCalc As Boolean oldCalc = ActiveSheet.EnableCalculation ActiveSheet.EnableCalculation = False ActiveSheet.EnableCalculation = True ActiveSheet.EnableCalculation = oldCalc End Sub 是这个什么意思?
    • @BillyKuhn 您可以只执行Sub Workbook_Open() Worksheets("Map").EnableCalculation = False End Sub ,但请记住,在将值标记为true 之前,它不会重新计算该工作表。您希望它在什么情况下重新计算?
    • 我现在似乎可以正常工作了。我的代码被应用于一个按钮,所以它只会在单击按钮时重新计算。这样,当我在其他选项卡中工作并输入数据时,每次输入时都不会重新计算此工作表,因为它完全基于许多公式的方式。当我刚刚得到字符串时,我并没有关闭启用计算属性,而是通过组合它并使用打开按钮,它解决了我的问题。
    • @BillyKuhn 很高兴听到。如果您对解决方案感到满意,请将问题标记为已回答,这将有助于下一个寻找此类解决方案的人。
    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2013-08-14
    • 2021-04-16
    相关资源
    最近更新 更多