当一个工作簿内包含的公式越多,那么它的运行速度就会越慢。甚至会在操作时出现无法响应的状态。


导致这种情况的原因是公式运算,当你进行一次计算操作时,表格内的所有公式都会重新进行一次计算。


所以,如果我们可以限制计算区域,减少重新计算公式的数量,是不是就可以避免或者减少表格卡顿的状况呢?


其实在Excel的公式栏内,为使用者提供了公式的三种计算方式:自动、除模拟运算表外,自动计算、手动。



自动状态下,公式会自行进行计算。手动状态下,公式只在保存工作簿时进行计算。除模拟运算表外,自动计算,这里的模拟运算表,工作中很少用到。


三种方式的命令是针对整个工作簿的,意思是,当你点击手动时,整个工作簿内的公式都不会进行自行计算。


这里介绍几句代码,可以指定当前工作簿内的部分表格不计算、指定当前工作表的部分单元格区域计算。


Sub 代码1() Application.Calculation =xlCalculationManual Range("a1:c5").Calculate End Sub


Calculation = xlCalculationManual首先指定当前工作的计算方式为手动。

Range("a1:c5").Calculate再设置单元格区域a1:c5内的公式进行计算。


由于整个工作簿已经设置为手动,所以只有单元格区域a1:c5才会进行计算。


Sub 代码2() Sheets("测试").EnableCalculation= False End Sub


这句代码的意思是,指定工作表“测试”不进行计算。如果需要只允许当前活动工作表可计算,那么可以先将所有表的EnableCalculation设置为False,再对当前活动表设置为True。


Sub 代码3() Dim sht As Worksheet For Each sht In Sheets sht.EnableCalculation = False Next ActiveSheet.EnableCalculation = True End Sub


至此,如何设置excel中公式的计算方式,优化表格运行速度就讲完了。有不懂的地方,可以关注、留言。