excel怎么样让指定单元格区域暂时不更新计算,前面算好后再更新计算?

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:01:27
比如说:前10列的数据我用 宏 来生成每列1000个随机数,
但由于后面还有十列1000行的单元格区域需要用前面生成的随机数进行计算,然后得出第20列1000行的数据为最终结果。
这样就影响了计算的速度,
我试了一下,把后10列全删掉,计算速度会快很多。
我猜可能是计算的时候随时更新后10列计算的缘故,所以想不让后十列的单元格更新数据,等前10列数据生成完毕再一块更新后面10列的数据,
不知道怎么实现?能不能在下边的宏里加代码实现?
请高手指教!谢谢!
Sub 随机数生成()
Dim i, j As Integer
For j = 1 To 10'从1列10列
For i = 21 To 1020 '在每列生成1000个随机数
Cells(i, j) = Application.NormInv(Rnd(), Cells(16, j), Cells(20, j))
Next i

Next j
End Sub

你试试这个呢,祝你成功!

Sub 随机数生成()
Dim i, j As Integer

Application.Calculation = xlCalculationManual '增加此句,取消自动计算

For j = 1 To 10'从1列10列
For i = 21 To 1020 '在每列生成1000个随机数
Cells(i, j) = Application.NormInv(Rnd(), Cells(16, j), Cells(20, j))
Next i

Next j

Application.Calculation = xlCalculationAutomatic '增加此句,恢复自动计算,当然也可以采用Calculate方法就指定区域或工作表进行计算,查一下帮助即可

End Sub