excel文件压缩 定位条件 对象

此方法仅适用于因对象导致文件大、慢。
文件大、慢也可能是公式太多、excel 行列太多 或 图片未压缩。

问题:
有一份excel 里面有20张表格,数据不多,公式不多但是文件大占17MB 。
在这里插入图片描述
简单方法1:
一张张表格点,找到最慢的那张表,之后重做那张慢表。

简单方法2:
找到慢的表格快捷键F5【 定位条件 - 对象 】找到对象后删除 (量少的话简单、速度快)

折腾过后 17MB变成409KB



进阶
扩展思路一:
统计已有对象:(打开后运行不卡)
效果如下:
在这里插入图片描述

代码如下:
工作表右键查看代码,新建模块。直接运行

  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

扩展思路二:
VBA下删除 多余对象

此电脑配置I5-7200U 双核四线程 16G内存 固态硬盘
用代码删除和F5定位条件删除耗时差不多。 F5定位条件内存占用会高几百MB。删除 6W对象约10分钟。所以还是不需要用代码装X。
处理的时候因为excel界面卡住,可以打开任务管理器,感受内存的跳动。
工作表右键查看代码,新建模块。直接运行

Sub ds()
    Dim sh As Worksheet, shp As Shape
    For Each sh In Sheets
        For Each shp In sh.Shapes
           If sh.Shapes.Count > 0 Then
                If shp.Type <> msoPicture Then
                    shp.Delete
                End If
           End If
        Next
    Next
    ThisWorkbook.Save
End Sub

参考资料:
http://blog.sina.com.cn/s/blog_43eb83b90100pai1.html

官方文档:

Excel 性能:性能和限制改进
https://docs.microsoft.com/zh-cn/office/vba/excel/concepts/excel-performance/excel-performance-and-limit-improvements
Excel 性能:性能和限制改进
https://docs.microsoft.com/zh-cn/office/vba/excel/concepts/excel-performance/excel-improving-calculation-performance

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值