Excel精英培训网

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

[已解决]是什么原因导致文件体积变大的

[复制链接]
发表于 2013-12-19 10:01 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2013-12-19 21:56 编辑

1.rar (130.63 KB, 下载次数: 16)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2013-12-19 10:05 | 显示全部楼层
上传a的目的,仅为说明附件本该只20几K
回复

使用道具 举报

发表于 2013-12-19 13:31 | 显示全部楼层
本帖最后由 zjdh 于 2013-12-19 13:45 编辑

发现将11:6536删除,体积立即缩小。
回复

使用道具 举报

发表于 2013-12-19 13:35 | 显示全部楼层
打开文件,按Ctrl+End 检查当前UsedRange的最后一个单元格(行数、列数最大值)

结果:
a.xlsm → D10单元格
b.xlsm → D65536单元格(在2003版中打开时)或实际更多行数

验证:
把b.xlsm 中D11行开始向下全部删除,然后另存为c.xlsm 文件大小恢复正常。


…………
这样就该明白了吧?


回复

使用道具 举报

发表于 2013-12-19 13:37 | 显示全部楼层
B表:
Sub test()
    Debug.Print Sheet1.UsedRange.Address
End Sub

立即窗口:$A$1:$D$65536

A表运行同样代码:$A$1:$D$10


可能是对B表设置了整列格式,导致文件增大,删除即可
回复

使用道具 举报

发表于 2013-12-19 14:22 | 显示全部楼层
本帖最后由 zjdh 于 2013-12-19 14:39 编辑

奇怪的是运行到Call List(p) 前,只是获取了一个路径,体积就增大了30倍。
将所有的宏复制到空白工作簿,运行下来体积却只增加了0.5倍。
说明一定另有原因。
回复

使用道具 举报

 楼主| 发表于 2013-12-19 15:27 | 显示全部楼层
谢谢大家!!

因为3,4,5楼给的都是恢复正常的办法,而不是变大的原因,所以我还是边等答案边找吧。

一开始我是“直接在单元格a11:d65536设置格式”,后来改为“用代码设置格式,只对有记录的区域”,就是想避免工作簿变大的情况。刚才试了下,
如果用a.xlsm查找一个路径后,保存,退出,文件就变成了700多K,不正常。
如果把a.xlsm里的代码(模块里的+工作表1里的),复制到空白工作簿,同样搜索某个路径,存盘,退出,文件只30K左右,正常。

这样比较后,我认为只能说明变大的原因,和代码无关。不是吗?可我绝对没对a.xlsm做手脚啊,奇怪的地方就在于此,希望能找出起因。。。。。


PS:希望大家指点一下a.xlsm里的代码,我认为还是有很大的修改需要。因为当单步执行main就会发现,指定一个路径后,其实走了不少冤枉路 .... 当然,这又是一个问题了,先说说

回复

使用道具 举报

发表于 2013-12-19 15:29 | 显示全部楼层
虽然解决了问题,但是这种无端出现的问题以后还是会遇到......
回复

使用道具 举报

发表于 2013-12-19 18:47 | 显示全部楼层
爱疯 发表于 2013-12-19 15:27
谢谢大家!!

因为3,4,5楼给的都是恢复正常的办法,而不是变大的原因,所以我还是边等答案边找吧。


第二个问题简单,两头各加一句语句即可。
Sub Main()
    Application.ScreenUpdating = False
    Application.EnableEvents = False     '禁止触发事件
     .......................
    Application.EnableEvents = True
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-12-19 19:11 | 显示全部楼层
zjdh 发表于 2013-12-19 18:47
第二个问题简单,两头各加一句语句即可。
Sub Main()
    Application.ScreenUpdating = False

谢谢zjdh!

对于第2个问题,我又想了下,放在sheet1的单元格改变事件里,还是好些。

如果是“自动方式”,没问题。
如果是“手动方式”,就又得必须加了。

所以,a.xlsm是把事件禁止和启用放在sheet1里。下午又去更新了下,
http://www.excelpx.com/thread-315632-3-1.html 21#
当把学到内容用于实际应用时,还是感觉有点,应接不暇,不断发现缺点和修改。
因为是希望同时满足“自动”和“手动”两种查询方式,21#虽然可完成,暂时没发现大错误,但跳来跳去,总还是不那么安心。希望能改好吧!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:38 , Processed in 0.308161 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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