删除Excel文件中隐藏对象的三种方法(第三种最快)

收到一个excel文件,总计1000行4列文字,文件大小却有412k。上下滚动没有异常,但是一旦涉及复制或排序就会变得十分缓慢,进程显示占用900多兆内存。放大后仔细观察,发现里面隐藏着很多图片、文本框之类的形状,使用VBA检查,debug.print sheet1.shapes.count,显示有40526个shape。这些形状都没有尺寸,选中一个并拖拽后发现是一些图片之类的东西,如下图显示:
在这里插入图片描述

一开始使用‘Ctrl+G’定位到‘对象’后删除,excel文件会失去响应,然后崩溃。即使只选择其中一个,也不能删除。真是奇哉怪哉。摸索了半天,最终解决了问题,总结三种删除方法如下:

1 采用VBA并结合对象组合法

Sub clearShape()
    On Error Resume Next
    Dim shp As Shape
    For Each shp In Sheet1.Shapes
        shp.Delete
    Next
End Sub

执行完毕后在立即窗口‘?sheet1.Shapes.Count’,发现还有388个shape没有删除。这时采用‘Ctrl+G’定位到‘对象’后点delete仍是删除不了的,需要鼠标右键选择组合,将它们组合成一个对象,然后点击delete才能删除。

2 改后缀名法

将excel文件的后缀名由xlsx改为rar(改成zip后尝试失败),然后用winrar打开压缩吧,删除其中xl文件夹下的“drawings”和“ink”文件夹,然后关闭winrar,再将rar文件的后缀名改回xlsx,用Excel打开会提示“部分内容有错误尝试修复”,选是,所有的图片都被删除了。如下图:
在这里插入图片描述
在这里插入图片描述

3 另存为法(强烈推荐)

将xlsx文件另存为CSV格式文件,用Excel打开后再另存为xlsx文件,图片全部删除,问题解决。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值