Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3497|回复: 5

[已解决]手动计算保存时有自动计算还很慢,并影响到打开的其他表变为手动计算

[复制链接]
发表于 2017-3-5 13:08 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2017-3-6 09:00 编辑

我有个工作簿里面有多张表,并且数据大公式多。我想关闭自动计算(保存表时不计算),设个计算全表按钮,单击按钮时计算表1、表3、表4,不计算表2、表5,请各位帮助,找个关闭自动计算代码:Private Sub Workbook_Open() ,Application.Calculation = xlCalculationManual 但保存时会自动计算还很慢, 并且还会影响到打开的其他表变为手动计算.
最佳答案
2017-3-5 14:39
本帖最后由 砂海 于 2017-3-5 14:44 编辑

另外:

表1 A列编号 应该写全 , 计算难度会大幅度降低 ,  如 表4 SUMPRODUCT((LOOKUP(  )  的 lookup 就可以不要了.

考虑到显示问题
方法1 辅助列 , 编号写全
方法2 用格式刷 去合并, 例如 A6:A8 都输入编号 , 辅助B6:B8 的格式 ,粘贴到 A6:A8
         这样编号完整 , 视觉效果与现在相同 . ( 但用WPS打开 会丢失 这个效果 )
 楼主| 发表于 2017-3-5 13:12 | 显示全部楼层
上传附件,请帮助,谢谢

物资表.zip

41.2 KB, 下载次数: 4

回复

使用道具 举报

发表于 2017-3-5 14:24 | 显示全部楼层
本帖最后由 砂海 于 2017-3-5 14:26 编辑

"并且还会影响到打开的其他表变为手动计算.
"Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlCalculationAutomatic
End Sub

文件关闭前 开启自动计算

-------------------------------------------------------------------
卡的原因是太多 数组公式 ,进行不必要的计算

表5 添加 2个辅助单元格 , 这样表5 只有一次 数组运算

N5    本编号 行号
=LOOKUP(1,0/($C$2=表一!$A$5:$A$105),ROW(表一!$A$5:$A$105))

N6     本编号 行数
=MIN(IF(ROW(表一!$A$5:$A$105)*(表一!$A$5:$A$105<>"")*(ROW(表一!$A$5:$A$105)>N5),ROW(表一!$A$5:$A$105),65536))-N5
数组公式

===============================
A10=
=IF(ROW(A1)<=$N$6,INDEX(表一!$C:$C,SUM($N$5-1+ROW(A1))),"")
下拉,
其余参考这个

这样就不用 每个单元格进行复杂的数组运算

另:进一步说 N5应该再减1 , A10 就不用再减了 , 当然这个影响很小 , 可以忽略

不是竞赛 , 应该多考虑辅助单元格
回复

使用道具 举报

发表于 2017-3-5 14:39 | 显示全部楼层    本楼为最佳答案   
本帖最后由 砂海 于 2017-3-5 14:44 编辑

另外:

表1 A列编号 应该写全 , 计算难度会大幅度降低 ,  如 表4 SUMPRODUCT((LOOKUP(  )  的 lookup 就可以不要了.

考虑到显示问题
方法1 辅助列 , 编号写全
方法2 用格式刷 去合并, 例如 A6:A8 都输入编号 , 辅助B6:B8 的格式 ,粘贴到 A6:A8
         这样编号完整 , 视觉效果与现在相同 . ( 但用WPS打开 会丢失 这个效果 )
回复

使用道具 举报

 楼主| 发表于 2017-3-5 23:13 | 显示全部楼层
砂海 发表于 2017-3-5 14:24
"并且还会影响到打开的其他表变为手动计算.
"Private Sub Workbook_BeforeClose(Cancel As Boolean)
     ...

谢谢!!关闭工作簿时会自动计算各单元格太慢,能否解决呢?
回复

使用道具 举报

发表于 2017-3-6 14:44 | 显示全部楼层
如果
表1 A列编号 写全

表5 可以完全不用 数组公式
表4 2007以上版本 有 Sumifs( 0 函数 , 亦非数组
-------------------
这样以后 以目前的数据量 , 不用考虑速度 .

再者 要速度 , 放弃函数 , 用 Vba
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 12:02 , Processed in 0.309158 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表