1 工作表中存在大量的细小图形对象
工作表中如果存在大量的细小图形对象,那么文件体积就可能在用户毫不知情的情况下暴增,这是一种很常见的“Excel 肥胖症”。可以使用下面两种方法来检查Excel 工作表是否存在这种症状。
(1)在工作表中按键调出“定位”对话框,单击“定位条件”按钮,在“定位条件”对话框中选择“对象”项,单击“确定”,如图1 所示。然后观察工作表上是否会显示很多被选定的对象。
如果工作簿中包含多个工作表,需要在每个工作表中用这种方法进行查找。关于“定位”功能的更多技巧,请参阅技巧28。
注意:隐藏列或行中的对象利用这种方法无法被看到。
(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 键来运行这段代码,就能看到检查结果。在看似空白的工作表中,存在着大量的图形对象,如图2 所示。
如果确认在工作表中存在大量的对象,而用户并不需要它们,可以用两种方法来处理:
(1)刚才的定位方法中,当对象全部处于被选择状态时按键删除它们即可。
(2)使用宏在多个工作表中更加精确地删除这些无用对象。比如,可以根据需要只删除高度和宽度都小于14.25 磅(0.5 cm)的对象。
只删除活动工作表中特定大小的对象的代码为:
Sub DelShapes()
Dim sp As Shape, n
For Each sp In ActiveSheet.Shapes
If sp.Width < 14.25 And sp.Height < 14.25 Then
sp.Delete
n = n + 1
End If
Next sp
MsgBox "共删除了" & n & "个对象"
End Sub
删除所有工作表中的特定大小的对象的代码为:
Sub DelAllShapes()
Dim ws As Worksheet
Dim sp As Shape
Dim n As Double
Dim Content As String
For Each ws In Worksheets
For Each sp In ws.Shapes
If sp.Width < 14.25 And sp.Height < 14.25 Then
sp.Delete
n = n + 1
End If
Next
Content = Content & "工作表" & ws.Name & " 删除了" & n & " 个对象" & vbCrLf
n = 0
Next
MsgBox Content
End Sub
这些令人疑惑的对象的产生原因可能有以下几个。从网页上复制内容后直接粘贴到工作表中,而没有使用选择性粘贴。无意中使用绘图工具栏的直线工具或其他绘图工具,不知不觉中在工作表中插入了小的直线或其他图形对象,由于尺寸很小,于肉眼几乎无法看到。而后,又通过单元格的复制产生了大量的小绘图对象。在工作表中插入了图片或其他绘图对象,操作中又将其高度宽度设为0 或很小的值,通过复制产生了大量的对象。
在行或列的位置中插入了绘图对象,对象的属性为“大小位置随单元而变的(默认的)”,然后隐藏行或列,或设置行高或列宽为很小的值,从而使插入的对象不能看到。工作表中的对象设置了不可见属性(Visible=false),或对象的线条与填充色均设与背景色相同,使对象无法被看到。
2 工作表中在较大的区域内设置了单元格格式或者条件格式
仔细观察工作表滚动条,如果滑标很小,且拖动滑标向下到底,可以到达很大的行号或列标,可是工作表中实际使用到的区域很小,如图3 所示。这就说明,有相当大一块区域可能被设置了单元格格式或者条件格式,这些并没有被用到的单元格,能对文件体积产生很大的影响。
解决办法如下。单击到真正需要的行号的下一行,按组合键,选择所有的多余行(也可以在名称框中输入行号如2000∶65536),单击菜单“编辑”→“清除→“格式”(或全部)。同理,也可以清除多余列的格式。
有时,用户确实需要为工作表中空白的区域预设格式,以备将来增加数据之用,但一定要使用正确的方法,否则就会造成大量用不到的区域被预设了格式,徒增文件体积。
如果需要在一行或一列的很大范围设置统一的单元格格式,可以选择整行或整列设置单元格格式,而不要只选择行列的一部分单独设置格式。前者不会造成文件体积虚增的问题,而后者会增加文件体积。试验一下在两个Excel 文件里面分别对A1∶A65536 设置单元格格式和对A∶A 设置单元格格式,目的都是为A 列设置格式,但最终文件的体积相差100 倍以上。
在工作当中用电子表格来处理数据将会更加迅速、方便,而在各种电子表格处理软件中,Excel以其功能强大、操作方便著称,赢得了广大用户的青睐。虽然Excel使用很简单,不过真正能用好Excel的用户并不多,很多人一直停留在录入数据的水平,本文将向你介绍一些非常使用的技巧,掌握这些技巧将大大提高你的工作效率。
⒈快速定义工作簿格式
首先选定需要定义格式的工作簿范围,单击“格式”菜单的“样式”命令,打开“样式”对话框;然后从“样式名”列表框中选择合适的“样式”种类,从“样式包括”列表框中选择是否使用该种样式的数字、字体、对齐、边框、图案、保护等格式内容;单击“确定”按钮,关闭“样式”对话框,Excel工作簿的格式就会按照用户指定的样式发生变化,从而满足了用户快速、大批定义格式的要求。
⒉快速复制公式
复制是将公式应用于其它单元格的操作,最常用的有以下几种方法:
一是拖动制复制。操作方法是:选中存放公式的单元格,移动空心十字光标至单元格右下角。待光标变成小实心十字时,按住鼠标左键沿列(对行计算时)或行(对列计算时)拖动,至数据结尾完成公式的复制和计算。公式复制的快慢可由小实心十字光标距虚框的远近来调节:小实心十字光标距虚框越远,复制越快;反之,复制越慢。
也可以输入复制。此法是在公式输入结束后立即完成公式的复制。操作方法:选中需要使用该公式的所有单元格,用上面介绍的方法输入公式,完成后按住Ctrl键并按回车键,该公式就被复制到已选中的所有单元格。
还可以选择性粘贴。操作方法是:选中存放公式的单元格,单击Excel工具栏中的“复制”按钮。然后选中需要使用该公式的单元格,在选中区域内单击鼠标右键,选择快捷选单中的“选择性粘贴”命令。打开“选择性粘贴”对话框后选中“粘贴”命令,单击“确定”,公式就被复制到已选中的单元格。
⒊快速显示单元格中的公式
如果工作表中的数据多数是由公式生成的,如果想要快速知道每个单元格中的公式形式,可以这样做:用鼠标左键单击“工具”菜单,选取“选项”命令,出现“选项”对话框,单击“视图”选项卡,接着设置“窗口选项”栏下的“公式”项有效,单击“确定”按钮。这时每个单元格中的公式就显示出来了。如果想恢复公式计算结果的显示,再设置“窗口选项”栏下的“公式”项失效即可。
⒋快速删除空行
有时为了删除Excel工作簿中的空行,你可能会将空行一一找出然后删除,这样做非常不方便。你可以利用“自动筛选”功能来简单实现。先在表中插入新的一行(全空),然后选择表中所有的行,选择“数据”菜单中的“筛选”,再选择“自动筛选”命令。在每一列的项部,从下拉列表中选择“空白”。在所有数据都被选中的情况下,选择“编辑”菜单中的“删除行”,然后按“确定”即可。所有的空行将被删去。插入一个空行是为了避免删除第一行数据。
⒌自动切换输入法
当你使用Excel 2000编辑文件时,在一张工作表中通常是既有汉字,又有字母和数字,于是对于不同的单元格,需要不断地切换中英文输入方式,这不仅降低了编辑效率,而且让人不胜其烦。在此,笔者介绍一种方法,让你在Excel 2000中对不同类型的单元格,实现输入法的自动切换。
新建或打开需要输入汉字的单元格区域,单击“数据”菜单中的“有效性”,再选择“输入法模式”选项卡,在“模式”下拉列表框中选择“打开”,单击“确定”按钮。
选择需要输入字母或数字的单元格区域,单击“数据”菜单中的“有效性”,再选择“输入法模式”选项卡,在“模式”下拉列表框中选择“关闭(英文模式)”,单击“确定”按钮。
之后,当插入点处于不同的单元格时,Excel 2000能够根据我们进行的设置,自动在中英文输入法间进行切换。就是说,当插入点处于刚才我们设置为输入汉字的单元格时,系统自动切换到中文输入状态,当插入点处于刚才我们设置为输入数字或字母单元格时,系统又能自动关闭中文输入法。
⒍自动调整小数点
如果你有一大批小于1的数字要录入到Excel工作表中,如果录入前先进行下面的设置,将会使你的输入速度成倍提高。
单击“工具”菜单中的“选项”,然后单击“编辑”选项卡,选中“自动设置小数点”复选框,在“位数”微调编辑框中键入需要显示在小数点右面的位数。在此,我们键入“2”单击“确定”按钮。
完成之后,如果在工作表的某单元格中键入“4”,则在你按了回车键之后,该单元格的数字自动变为“0.04”。方便多了吧!此时如果你在单元格中键入的是“8888”,则在你结束输入之后,该单元格的数字自动变为“88.88”。
⒎用“记忆式输入”
有时我们需要在一个工作表中的某一列输入相同数值,这时如果采用“记忆式输入”会帮你很大的忙。如在职称统计表中要多次输入“助理工程师”,当第一次输入后,第二次又要输入这些文字时,只需要编辑框中输入“助”字,Excel2000会用“助”字与这一列所有的内容相匹配,若“助”字与该列已有的录入项相符,则Excel2000会将剩下的“助理工程师”四字自动填入。
按下列方法设置“记忆式输入”:选择“工具”中的“选项”命令,然后选择“选项”对话框中的“编辑”选项卡,选中其中的“记忆式键入”即可。
⒏用“自动更正”方式实现快速输入
使用该功能不仅可以更正输入中偶然的笔误,也可能把一段经常使用的文字定义为一条短语,当输入该条短语时,“自动更正”便会将它更换成所定义的文字。你也可以定义自己的“自动更正”项目:首先,选择“工具”中的“自动更正”命令;然后,在弹出的“自动更正”对话框中的“替换”框中键入短语“爱好者”,在“替换为”框中键入要替换的内容“电脑爱好者的读者”;最后,单击“确定”退出。以后只要输入“爱好者”,则整个名称就会输到表格中。
⒐用下拉列表快速输入数据
如果你希望减少手工录入的工作量,可以用下拉表来实现。创建下拉列表方法为:首先,选中需要显示下拉列表的单元格或单元格区域;接着,选择菜单“数据”菜单中的“有效性”命令,从有效数据对话框中选择“序列”,单击“来源”栏右侧的小图标,将打开一个新的“有效数据”小对话框;接着,在该对话框中输入下拉列表中所需要的数据,项目和项目之间用逗号隔开,比如输入“工程师,助工工程师,技术员”,然后回车。注意在对话框中选择“提供下拉箭头”复选框;最后单击“确定”即可。
大家都知道,word文档中的图片是不能够复制粘贴的,只能将图片从文档中提取出来,常用的方法是将word文档另存为网页格式的进行提取。但缺点是提取一张图片会生成一张原始图和一张缩略图(效果非常差),用户还得从这两张图片中挑选那张效果比较清晰的图片,非常繁琐。若图片多了,更是苦不堪言。
今天,笔者就带领大家认识另一种提取word文档中图片的方法。前提是你的系统中安装了office 2007或office 2003中安装了兼容office 2007的补丁程序。
第一步:打开要提取图片的word文档,单击“文件”→“另存为”,将文件保存类型设为“word 2007 文档(*.docx)”格式,文件名可自定义。点击“确定”按钮生成一个*.docx格式的文件。
第二步:将生成的.docx格式的文件重命名为.zip格式的文件(更改文件的扩展名即可)。之后会弹出“更改可能会导致文件不可用,确认是否更改”提示对话框,选择“是”。
注:操作系统默认是“隐藏文件的扩展名”的,所以用户必须在“工具”→“文件夹选项”→“查看”窗口中去掉“隐藏已知文件类型的扩展名”前的对勾,将文件的扩展名设为可显示,否则无法更改文件的扩展名。
第三步:将生成的zip格式的文件解压缩,然后再在文件的解压缩目录下打开wordmedia文件夹,即可看到提取好的所有word文档中的图片,而且是每张图片各一张,文件名也是按图片的先后顺序来命名。
这种方式虽然进行了几次文件格式的转换,但是比起在大量图片中进行二选一挑选的方式不知快了多少倍,而且出错率也非常低,非常适用于word文档中进行大量图片的提取工作!
(网易博客 2008-11-23 14:08:09|)