注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> 软件应用 >> Office >> Excel >> 软件应用正文

Excel工作薄瘦身秘技

文章来源:网页教学网 作者:佚名 更新时间:2008-2-9 20:19:37 【 】 【加入收藏

  如果工作簿中包含多个工作表,需要在每个工作表中用这种方法进行查找。关于“定位”功能的更多技巧,请参阅技巧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 所示。

使用VBA检测工作表中的对象数量

p>

  误设单元格格式或者条件格式

  如果确认在工作表中存在大量的对象,而用户并不需要它们,可以用两种方法来处理:

  (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 或很小的值,通过复制产生了大量的对象。

p>

  在行或列的位置中插入了绘图对象,对象的属性为“大小位置随单元而变的(默认的)”,然后隐藏行或列,或设置行高或列宽为很小的值,从而使插入的对象不能看到。工作表中的对象设置了不可见属性(Visible=false),或对象的线条与填充色均设与背景色相同,使对象无法被看到。

  2 工作表中在较大的区域内设置了单元格格式或者条件格式

  仔细观察工作表滚动条,如果滑标很小,且拖动滑标向下到底,可以到达很大的行号或列标,可是工作表中实际使用到的区域很小,如图3 所示。这就说明,有相当大一块区域可能被设置了单元格格式或者条件格式,这些并没有被用到的单元格,能对文件体积产生很大的影响。

  解决办法如下。单击到真正需要的行号的下一行,按组合键,选择所有的多余行(也可以在名称框中输入行号如2000∶65536),单击菜单“编辑”→“清除→“格式”(或全部)。同理,也可以清除多余列的格式。

  有时,用户确实需要为工作表中空白的区域预设格式,以备将来增加数据之用,但一定要使用正确的方法,否则就会造成大量用不到的区域被预设了格式,徒增文件体积。

  如果需要在一行或一列的很大范围设置统一的单元格格式,可以选择整行或整列设置单元格格式,而不要只选择行列的一部分单独设置格式。前者不会造成文件体积虚增的问题,而后者会增加文件体积。试验一下在两个Excel 文件里面分别对A1∶A65536 设置单元格格式和对A∶A 设置单元格格式,目的都是为A 列设置格式,但最终文件的体积相差100 倍以上。

  • 上一篇软件应用:

  • 下一篇软件应用:
  • 最 新 热 门
     Excel 2007中正确显示日期和时间
     Excel 2007中正确显示货币格式的数字
     Excel 2007信用卡号码安全显示
     Excel将文本的日期转为日期格式
     Excel将文本的数字转换数字格式
     Excel 2007自定义数字格式的准则
     Excel 2007千位分隔符的显示或隐藏
     Excel工作薄瘦身秘技
     Excel数据重复输入自动报警
     Word 2007查看文档的问题
    最 新 推 荐
     Excel 2007中正确显示日期和时间
     Excel 2007中正确显示货币格式的数字
     Excel 2007信用卡号码安全显示
     Excel将文本的日期转为日期格式
     Excel将文本的数字转换数字格式
     Excel 2007自定义数字格式的准则
     Excel 2007千位分隔符的显示或隐藏
     Excel工作薄瘦身秘技
     Excel数据重复输入自动报警
     Excel 2007中将数字设置为百分比形式
    相 关 文 章

    Excel 2007中正确显示日期和时间
    Excel 2007中正确显示货币格式的数字
    Excel 2007信用卡号码安全显示
    Excel将文本的日期转为日期格式
    Excel将文本的数字转换数字格式
    Excel 2007自定义数字格式的准则
    Excel 2007千位分隔符的显示或隐藏
    Excel数据重复输入自动报警
    Excel 2007中将数字设置为百分比形式
    Excel电子表格工作簿减肥秘招

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用