卡尔蔡司镜头|优化运行速度,为Excel公式实现暂停、启用按钮

卡尔蔡司镜头|优化运行速度,为Excel公式实现暂停、启用按钮

文章图片



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

导致这种情况的原因是公式运算 , 当你进行一次计算操作时 , 表格内的所有公式都会重新进行一次计算 。
所以 , 如果我们可以限制计算区域 , 减少重新计算公式的数量 , 是不是就可以避免或者减少表格卡顿的状况呢?
其实在Excel的公式栏内 , 为使用者提供了公式的三种计算方式:自动、除模拟运算表外 , 自动计算、手动 。

自动状态下 , 公式会自行进行计算 。 手动状态下 , 公式只在保存工作簿时进行计算 。 除模拟运算表外 , 自动计算 , 这里的模拟运算表 , 工作中很少用到 。
三种方式的命令是针对整个工作簿的 , 意思是 , 当你点击手动时 , 整个工作簿内的公式都不会进行自行计算 。
这里介绍几句代码 , 可以指定当前工作簿内的部分表格不计算、指定当前工作表的部分单元格区域计算 。

Sub 代码1()
Application.Calculation =xlCalculationManual
【卡尔蔡司镜头|优化运行速度,为Excel公式实现暂停、启用按钮】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中公式的计算方式 , 优化表格运行速度就讲完了 。 有不懂的地方 , 可以关注、留言 。

    相关经验推荐