您现在的位置: 北极圈下载站 >> 软件教学 >> Excel >> 正文
为Excel工作薄减肥秘技

作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-5-25 18:02:57

很多用户都遇到过Excel 文件在使用过程中不断增肥,反应越来越迟钝的现象,甚至发生文件损坏而丢失重要数据的可怕事件。如果是因为有大量数据的输入,那么文件体积增加也无可非议,此时应该通过优化表结构、把数据分散保存到多个工作簿文件的方法来减小单个文件的体积。

然而,在很多时候,这些拥有“臃肿”身材的工作簿文件里面只有少量的数据,那么,它是怎么“肥”起来的呢?

   本技巧中会罗列一些常见的Excel 文件体积虚增的原因及处理办法。

   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

[1] [2] 下一页

文章录入:admin    责任编辑:admin 
  • 上一个文章:

  • 下一个文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    站内文章搜索

    推 荐 文 章

    热 门 文 章

    推 荐 软 件