文档详情

excel文件瘦身

cjc****537
实名认证
店铺
DOC
92KB
约6页
文档ID:47346665
excel文件瘦身_第1页
1/6

1 工作表中存在大量的细小图形对象 工作表中如果存在大量的细小图形对象,那么文件体积就可能在用户毫不知情的情况下暴 增,这是一种很常见的“Excel 肥胖症”可以使用下面两种方法来检查 Excel 工作表是否 存在这种症状 (1)在工作表中按键调出“编辑”-“定位”对话框,单击“定位条件”按钮,在“定位条件”对话 框中选择“对象”项,单击“确定”,如图 1 所示然后观察工作表上是否会显示很多被选定 的对象如果工作簿中包含多个工作表,需要在每个工作表中用这种方法进行查找注意: 隐藏列或行中的对象利用这种方法无法被看到 (2)用 VBA 对工作簿中的对象进行计数,查看在每个工作表中实际存在的对象数量,如 果此数量不合理,就说明有问题按打开 VBA 编辑器窗口,单击菜单“插入”→“模块”来 插入一个新模块,默认情况下为“模块 1”,然后在模块 1 的代码窗口中输入以下代码: Sub CountShapes() Dim n As Double Dim ws As Worksheet Dim Content As String For Each ws In Worksheets n = ws.Shapes.Count Content = Content & “工作表“ & ws.Name & “ 有“ & n & “ 个对象“ & vbCrLf Next MsgBox Content End Sub 最后,按 F5 键来运行这段代码,就能看到检查结果。

在看似空白的工作表中,存在着大 量的图形对象 如果确认在工作表中存在大量的对象,而用户并不需要它们,可以用两种方法来处理: (1)刚才的定位方法中,当对象全部处于被选择状态时按键删除它们即可 (2)使用宏在多个工作表中更加精确地删除这些无用对象比如,可以根据需要只删除高 度和宽度都小于 14.25 磅(0.5 cm)的对象 只删除活动工作表中特定大小的对象的代码为: Sub DelShapes() Dim sp As Shape, n For Each sp In ActiveSheet.Shapes If sp.Width “最后一个单元格“所给你的结果) ,我是说你可以手工找到这个 单元格然后选中这个单元格右边所有的列,然后执行菜单命令:“编辑“=〉“清除“=〉“全 部“,接下来,选中这个单元格下面所有的行,同样执行菜单命令:“编辑“=〉“清除“=〉“ 全部“,然后保存 二图片或者其他绘图图形较多,或者图片选择了不恰当的格式 选择适当的图片格式 在文档中引用的图片格式一般有三种,BMP、JPG、GIFBMP 格式 保存的图片保真度较高,但大小往往是其它两种格式的几倍至几十倍,而照片、扫描图片 等用 GIF 格式保存则失真非常严重,因此建议图片先采用 JPG 格式保存,然后再引入到文 档中,这种格式的图片大小不仅比 BMP 格式小很多,而且往往也比 GIF 的格式小,而保 真度与 BMP 格式则相差无几。

利用“插入”引入图片 插入图片有两种方法,第一种是将图片保存为一个 JPG 格式的文件,选择“插入→图片→ 来自文件”,打开“插入图片”对话框,选中所需插入的图片文件,点击“插入”即可另一种 是用“画图”、 “Microsoft 照片编辑器”等打开这个 JPG 文件,选中并复制,然后在文档中点 击“粘贴”即可插入强烈建议大家采用第一种方法,虽然两种方法得到的图片质量是一样 的,但第一种方法所形成的文档的大小可能会比第二种小几十倍! 彻底清除图形对象:例如我们自己画的一些图形,比如你现在不要用它们了,你选择行或 者列范围删除,清除都是清除不掉了,他们只是可能缩小了这个时候,就可以用到本版“ 流浪的风“提到过的一个方法 1.先找到其中的一个文本框(找不到就自己添加一个) 2.选中这个文本框,按 F5-定位条件-对象确定 3.按 Delete 清除 4.保存关闭 5.看看现在文件有多大,打开看看速度还慢不慢 三公式和名称较多或者公式,名称,数据透视表等所引用的单元格范围过大 由于和第二点类似的原因,我们在定义名称,编写公式,指定数据透视表的数据源时往往 图一时方便,而指定了过大的单元格范围。

例如在 A 列中有包括标题在内的 10 个数据 (A1:A10) ,标题为“姓名”,我们现在要定义一个名称,例如“姓名“,很多人会用 插入=〉 名称=〉指定=〉首行,这当然是方便的,但这样的话“姓名”这个名称就引用了 A2:A65536, 而不是实际的 A2:A10你能想象到两者的差别吗? 这时候,有的朋友要说:我这样做的原因是因为我的数据是在不断增加的呀,我可不想每 次在变动的时候都去改这个名称 当然,你是对的,谁会愿意这样做呢? 当我确信我定义的这个名称所引用的范围不可能是固定的时候,我采用了一个方法就是“动 态命名”听起来有点耳熟对吗?请看这个例子:为简单起见,我们假设数据都是连续地在 A10 后面开始添加,也就是说我们希望当我们添加到 A15 时,这个“姓名“就如我所愿地指 向 A2:A15,而这一切都是自动完成的那么你可以在“插入“=〉“名称“=>“定义“对话框中,找到“姓名“,然后修改引用位置为=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1),然后点击“添 加“请留步,先不要急着关闭这个对话框你现在可以将鼠标放在“引用位置“的这个框里 面,由此来验证你要的结果。

看到了吗?工作表中那一闪一闪的区域就表示了目前“姓名“ 所引用的单元格范围 这只是一个简单的示范,利用这种技巧,可能让我们用最经济的方式得到我们需要的结果在公式引用中,在指定数据透视表的数据源时,都可以运用类似的技巧当然,我不会推 荐你写类似这样的公式=CountA(OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)) ,而是推荐你 先定义好这个名称,然后这样写公式:=CountA(姓名) 这种效果在数组公式中更明显,除非你有足够的耐心和勇气,请不要在数组公式用引用过 大的单元格范围,特别是那些不必要的单元格 请注意,以上的检查应该是针对工作簿中的所有工作表,包括隐藏的 四VBA 代码,尤其是用户窗体的影响 现在很多朋友都已经学会了用 VBE 来构建自己的工程,这是多么令人振奋的一件事!但今 天我们要讨论的是如何处理 VBA 工程可能带来一些副作用以及如何压缩它? 有很多测试证明,用户窗体会是增加文件大小的比较突出的原因之一而反复地改写工程 中模块的代码,也或多或少地会增加文件的大小(我们可以这样理解:反复地改写工程代 码,总是会留下一些痕迹和碎片) 对于这个问题,可以考虑将所有模块,窗体,都导出为文件,然后保存,然后再依次导入。

关于用户窗体,作为开发者应该考虑的是:是否真的有必要用某个窗体?举个简单的例子, 如果只是接收用户输入数值,就完全可以用 InputBox 方法或者属性,而不需专门用一个窗 体同时,工作表本身可以用来做用户交互的界面,应该充分利用外部链接(特别是死链接)的影响 有的时候,我们的工作簿中可能包含了一些外部引用,这样我们可以共享其他工作簿的一 些信息如果你的工作簿中包含外部链接,你可以通过“编辑“=>“链接“对话框中查看到 默认情况下,文件在打开时,总是尝试去链接源文件,以刷新数据在保存时,会纪录链 接的变化情况 当源文件的位置或者内容发生变化时,就可能产生死链接 我个人非常不主张用链接方式来实现不同文件间数据的共享,这既不是最方便的方法,而 且在文件分发过程中会遇到一些问题我当然知道数据共享是有意义的,但我经常会尝试 用其他的途径来实现关于自动保存选项的考量 选中这个选项时,每次进行保存文档的操作则只保存文档的修改部分,保存速度较快,但 文档的大小也会增加,即使是对文档进行删减操作也是如此目前计算机的速度较快,因 此开启这项功能所带来速度的增加毫不明显,但付出的代价是文档的大小急剧膨胀,建议 不要选中这个选项。

试着关闭这个选项,再对文档稍作修改,然后保存,你会惊奇地发现 文档的大小会大幅度缩小! 七文件异常退出(或者其他不可预见的原因)造成的工作簿内工作表结构方面的损坏 有时候,由于一些不可预见的原因(例如停电) ,Excel 被迫异常退出虽然目前没有专门 的工具可以检测这种情况对工作簿内部可能造成的损坏程度,但是有理由相信多少是有影 响的 如果你的文件中不存在前面提到的几个问题,同时你还是确信文件体积不正常,你可以尝 试如下的方法新建一个工作簿,把现有文件中的工作表一一剪切到新的工作簿中请注意这里用的是“剪 切”方法,不是“移动或复制工作表”,也不是“复制”没错,就是先选中工作表中的内容, 然后“剪切”,光标移动到目标工作表,然后“粘贴”这样做唯一不足的地方就是,目标工 作表的行和列格式可能要稍微调整一下 -------------------------------------------------------------------------------- 第二部分:如何给 Excel 加速 可能影响 Excel 的运行速度的几个方面 1设备的配置是否合理?特别是 Office 2003,功能的确是很强大了,但相应的对硬件的 要求也提高了。

一般用户都用 Windows Xp 系统,然后装 Office 2003 ,当然还有其他的软 件了,这样的情况,我推荐的配置是:CPU P4 1G 及以上,内存 256MB 及以上,硬盘 40G 及以上根据自己的计算机的配置情况,你也可能选择只安装部分(而不一定是全部) Office 组件和工具Excel 内置了几个加载宏程序,可以帮助我们实现一些高级功能另外,我们 自己也可以编写,或者在网上也可以找到更多的各式各样的加载宏程序在使用加载宏时 我可以给出的建议有:首先一定要确认加载宏的来源是否正当?下载后,安装前,强烈推 荐要先杀毒其次,要用的时候再加载它,而不主张一直把所有的加载宏都加载上自动重算,自动保存选项的考量这两个选项在一定程度上给我们的工作带来了便利 但在有些时候(例如是公式比较多的时候) ,特别是自动重算,可能导致运行速度变慢前 面提到:自动保存选项也是可能导致文件增大的一个因素有选择性地在操作一些文件时 关闭这两个选项,可能会对运行速度有帮助迭代计算选项的考量出于某种特殊的需求,我们可能会允许工作簿进行迭代计算,也 就是循环引用(这种有目的的循环引用可以被用到解联立方程等一些特殊的场合) 。

但是这 种循环引用会导致工作表频繁地被计算,当工作表任何地方发生变化时,就被重新计算一 次所以,这一点也是影响 Excel 速度的原因之一建议不要勾上这个选项文件不正常(主要是本文第一部分所提到的一些情况) 这一项的解决不再赘述不恰当地使用了其他一些外部工具可能导致的问题例如一些测试版的软件,就好比目 前的 VSTO 2005 BETA2 ,这里面有一些针对 Excel 进行编程的工具有的朋友(请注意: 只是可能)就会发现,安装了这个工具后,或者即使后来卸载了这个工具后,Excel 在读文 件,特别是内部有宏的文件时非常奇怪地“吃”内存,具体地说就是 Excel 会疯狂地占用内 存,以致根本就无法正常工作对于这种情况,有一个比较简便的方法就是使用:帮助=〉检测与修复 ,有两个选项:修复时恢复快捷方式;放弃自定义设置并恢复默认设置 如果两个选项都选上了,或者至少第二个选项选上了的话,执行修复完后一般都能解决这 个问题请注意:在执行这个操作之前,请确定你已经清楚这样操作可能导致的一些问题 (例如 Outlook 的个人数据文件可能需要重新指定:文件不会丢失,但修复完重新开 Outlook 前,请到控制面板=〉邮件 对话框中指定你的个人数据文件) 。

强烈建议你要先阅 读相应的帮助文档 ---------------------。

下载提示
相似文档
正为您匹配相似的精品文档