在下图所示的excel表格中,我想重新计算从第1-5行开始的顶部停止。我重新计算的意思是,例如,单元格M2,H4,S4具有today()公式,每次打开它都会重新计算。我希望它计算一次,一旦我保存,再次打开时不再重新计算。有什么建议?我试过了
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub
答案 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