ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 283878|回复: 317

[分享] [分享]EXCEL文件肥胖的的原因分析及减肥

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-16 17:03 | 显示全部楼层 |阅读模式


很多人在实际使用EXCEL过程中发生EXCEL文件不明原因的增大,打开计算都很缓慢的现象,有时甚至造成文件损坏,无法打开的情况,以下是我收集的造成文件虚增的原因及处理办法,对没有提到的其他情况和解决办法,欢迎大家给予补充:

一、工作表中有大量的细小图片对象造成文件增大,这是最常见的文件虚胖原因。
可能的原因:
(1)从网页上复制内容直接粘帖到工作表中,而没有使用选择性粘帖,
(2)无意中点了绘图工具栏的直线或其他绘图对象,不知不觉中在文件中插入了小的直线或其他图形,由于很小,肉眼几乎无法看到,又通过单元格的复制产生了大量的小绘图对象
(3)在工作表中插入了图片其他绘图对象,操作中又将其高度宽度设为0或很小的值,通过复制产生了大量的对象
(4)在行或列的位置中插入了绘图对象,对象的属性为,大小位置随单元而变的(默认的),然后隐藏行或列,或设置行高或列宽为很小的值,从而使插入的对象不能看到
(5)工作表中的对象设置了不可见属性(Visible=false)或对象的线条和填充色均设为与底色相同,使对象无法看到

判断方法:
(1)编辑→定位(快捷键:F5或Ctrl-G),定位条件中选“对象”,确定后会显示很多被选择的小对象(这种方法在隐藏列或行中的对象并不能看到)
(2)用VBA对对象进行计数,看看有多少个对象在工作表中,与你的工作表中需要的对象数量是否相符

Sub countshapes()
Dim n
n = ActiveSheet.Shapes.Count
MsgBox "本工作表共有" & n & "个对象"
End Sub

解决办法
(1)如果确认工作表中没有你需要的对象或控件,用CTRL-G,定位,定位条件中选“对象”,确定后按DEL键删除,会删除工作表中所有的对象
(2)用VBA删除,可以根据需要删除高度或宽度小于一定值的小对象,如

Sub delshapes()
Dim sp As Shape, n
For Each sp In ActiveSheet.Shapes
If sp.Width < 14.25 Or sp.Height < 14.25 Then   '约小于0.5cm,根据需要设定
sp.Delete
n = n + 1
End If
Next sp
MsgBox "共删除了" & n & "个对象"
End Sub


二、工作表中在很大的范围内设置了单元格的格式或者条件格式

可能的原因:
操作时选择在很大的区域设置或复制了单元格的格式或条件格式(并不是整行整列),而真正用的区域并不很多,造成工作表内容不多,文件却很大。

判断方法:
工作表滚协条的拖动滑标很小,拖动滑标向下可以达到很大的行号或列标,滑标拖到最下或最右的位置显示的列标或行号就是实际设置了单元格格式的地址

解决办法:
1、定位真正需要的行号下一行,按CTRL+SHIFT+下箭头,选择所有的多余行(也可以在名称框中输入行号如:2000:65536),编辑-清除-格式(或全部),同理清除可清除多余列的格式
2、如果需要在一行或一列的很大范围设置统一的单元格格式,可以选择整行或整列设置单元格格式,而不要只选择行列的一部分单独设置格式,再根据需要对行列的个别单元格设置单独的格式,对整行或整列甚至整个工作表设置单元格格式并不会造成文件虚增的问题,对A1:A65536设置单元格格式与对A1:A65535设置单元格格式文件太小是完全不同的
3、如果欲对已设置的不同格式的单元格设置整列或整行统一的格式,应选整行或整列,先清除单元格的格式或将单元格格式设为常规,再对整行或整列设置其他的单元格格式,直接设置有时可能并不能使文件减肥
4、对条件格式也可用编辑-定位,定位条件中选“条件格式”,然后在格式-条件格式中删除条件格式

三、为很大的区域设置了数据有效性

形成原因:
与第二项基本相同,选择很大的区域设置了数据有效性,或将有有效性设置的单元格复制到很大的区域,尤其是在有效性设置中进行了“输入法”“输入信息”“出错警告”的设置,更具有隐蔽性,一般不易发现。

判断方法:
与由于单元格格式造成文件虚肥的原因相同,在清除多余区域的单元格格式后文件尺寸仍没有减下来,就应该考虑是不是有效性设置原因引起

解决办法:
选择多余的单元格区域,数据-有效性,在“设置”、“输入信息”、“出错警告”、“输入法”页面分别执行“全部清除”

四、公式复杂,公式很长

由于单元格公式复杂,公式太长,造成文件增大
解决方法:
针对大量重复使用的公式(包括相对引用的公式),用定义名称的方法简化
下例中原文件用VLOOKUP公式文件189K,用定义名称后文件减小到117K

VF4CiP66.rar (11.35 KB, 下载次数: 3010)


再补充两条

六、工作表背景造成的文件增大

因以较大的图片作为工作表的背景,使文件增大

解决办法:除非特别需要,不要用工作表背景,如果确实需要,作为背景的图片要尽可能的小。

七、工作表中插入的图片格式影响文件的大小

工作表插入的图片是BMP格式或从绘图软件中直接复制图片粘帖到工作表中

解决办法:把BMP文件转换为JPG格式,并尽量在绘图软件中将图片调整到在EXCEL中实际显示的大小,再插入工作表,不要直接粘帖图片到工作表中

[此贴子已经被aichong于2008-8-21 11:23:58编辑过]

BHAHNboE.rar

44.57 KB, 下载次数: 2466

[分享]EXCEL文件肥胖的的原因分析及减肥

评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2005-8-16 17:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我的EXCEL老是自个循环引用,什么问题,且太大了,一个文件就20兆,谢谢

TA的精华主题

TA的得分主题

发表于 2005-8-16 19:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:

判断方法:(1)CTRL-G,定位,定位条件中选“对象”,确定后会显示很多被选择的小对象(这种方法在隐藏列或行中的对象并不能看到)(2)用VBA对对象进行计数,看看有多少个对象在工作表中,与你的工作表中需要的对象数量是否相符

也可以用绘图工具栏的“选中多个对象”按钮(这个按钮需要自己添加),看看有多少个对象在工作表中(附图共有7092个对象):
[此贴子已经被作者于2007-4-29 21:14:42编辑过]
qcX7TBjd.gif

TA的精华主题

TA的得分主题

发表于 2005-8-16 19:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
现在好了。谢谢你的指导。

TA的精华主题

TA的得分主题

发表于 2005-8-16 20:24 | 显示全部楼层
本帖最后由 ExcelHome 于 2012-10-6 15:38 编辑

关于这个问题还真多,真是及时雨

 

TA的精华主题

TA的得分主题

发表于 2005-8-16 20:31 | 显示全部楼层
有时候对于记录很多的数据进行自动筛选后,如用了ctrl+A,再复制粘贴的话,粘贴的数据量仍会很大。应ctrl+*→然后Atrl+;→然后再复制粘贴。

TA的精华主题

TA的得分主题

发表于 2005-8-16 20:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-8-16 20:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用wuaza在2005-8-16 20:31:23的发言: 有时候对于记录很多的数据进行自动筛选后,如用了ctrl+A,再复制粘贴的话,粘贴的数据量仍会很大。应ctrl+*→然后Atrl+;→然后再复制粘贴。

选中区域直接复制粘贴(是选中所有要复的单元格不是行列或全部,我用的是2003版)

TA的精华主题

TA的得分主题

发表于 2005-8-16 21:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-8-16 22:04 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 22:49 , Processed in 0.041299 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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