【问题标题】:How to stop automatic recalculation in excel如何在excel中停止自动重新计算
【发布时间】:2016-06-03 01:27:32
【问题描述】:

在下图所示的 excel 表中,我希望对第 1-5 行的顶部停止重新计算。我的意思是重新计算,例如单元格 M2、H4、S4 有 today() 公式,每次打开它都会重新计算。我希望它计算一次,一旦我保存,就不会再次重新计算再次打开。有什么建议么?我试过了

Private Sub Workbook_Open()
   Application.Calculation = xlCalculationManual
End Sub

【问题讨论】:

  • 检查是否触发了您的 workbook_open 事件。或检查您工作表上的 application.calculation 值
  • 如果您希望工作表的其余部分正常计算,则必须将宏写入 BeforeSave 事件,将 Today() 值作为值写入单元格。
  • 不是打开和关闭自动计算,而是用固定日期替换您的 TODAY() 公式。添加一个按钮,当您按下它时将更新固定日期。这样,它只会在您准备好时才将信息更新到今天。

标签: vba excel excel-formula


【解决方案1】:

我没有发表评论以提出澄清问题的声誉,因此我将发布答案(假设您的答案是什么)。

只要您不希望这些单元格重新计算(并且不介意丢失公式),最简单的解决方案就是将它们转换为值。

为前 5 行实现此目的的简单宏:

sub ConvertToValues()
Dim rngToValues as Range
set rngToValues = YourSheet.UsedRange.Rows("1:5").EntireRow
rngToValues.Value = rngToValues.Value
end sub

【讨论】:

    【解决方案2】:

    好吧,在Workbook_Open 时设置Application.Calculation = xlCalculationManual 可能并不总是保证您获得所需的结果,因为打开文件时Excel 可能位于xlCalculationAutomatic 中。

    因此解决方法是,打开 Excel 并在 VBE 中或通过菜单将计算设置为手动,然后打开您的文件。
    在 VBE 中,然后在即时窗口中键入 Application.Calculation = xlCalculationManual点击 Enter 然后打开您的文件。
    在 Excel 中,对于 2007 版本,单击 Formula Menu,转到 Calculation Group,在 Calculation Options 中选择 @ 987654329@。对于旧版本,Tools > Options > Calculation

    【讨论】:

      【解决方案3】:

      我建议在 VBA 中根据您想要的事件评估函数。

      如果您希望 TODAY 函数根据您的请求进行计算,我将创建一个带有重新评估 TODAY 的宏的按钮。

      我将如何实现这取决于您是否希望/需要将单元格作为公式。 如果有计算值就足够了,您可以在 VBA 中计算并将值设置为您想要的单元格。 如果您想要一个公式并保留最后评估的 TODAY 值,您可以将公式设置为单元格。 Range("M2").Formula = Date() & "other formula part"

      最简单的解决方案是在 VBA 中的某个单元格中设置今天的值

      Sub Macro1 ()
      
          Range("A5").Value = Date()
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-16
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 2020-09-04
        • 1970-01-01
        相关资源
        最近更新 更多