如何在excel中停止自动重新计算

时间:2016-06-02 12:24:54

标签: excel vba excel-vba excel-formula

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

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

enter image description here

3 个答案:

答案 0 :(得分:2)

我没有发表评论来提出澄清问题的声誉,所以我会发布一个答案(假设您的答案是什么)。

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

简单的宏来实现前5行:

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

答案 1 :(得分:2)

好吧,在Application.Calculation = xlCalculationManual时设置Workbook_Open可能无法始终向您保证所需的结果,因为在打开文件时Excel可能会在xlCalculationAutomatic中。< / p>

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

答案 2 :(得分:0)

我建议在VBA中评估你想要的事件。

如果你想要TODAY函数来计算你的请求,我会创建一个带有宏的按钮,重新评估今天。

我将如何实现这取决于您是否需要/需要将单元格作为公式。 如果足以获得计算值,则可以在VBA中计算并将值设置为所需的单元格。 如果您想要一个公式并保留最后一个评估的TODAY值,您可以将公式设置为单元格。 Sub Macro1 () Range("A5").Value = Date() End Sub

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

cus-proguard-android.txt