寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?

在用Office软件Excel时,经常遇到这样一个问题,明明Excel文件中没几行数据,但整个Excel文件大小达数MB,甚至是几十MB大小,Excel打开相当吃力,完全无法操作。有没有办法解决Excel文件内容很少,但文件很大,打开很慢、很卡这一怪象呢?

以前遇到过这样的问题,今天又遇到了,一个就一个小表的Excel文件居然有2.4MB,打开非常缓慢,输入几个字卡得十分严重。好在之前已经有解决方案,废话不多说,直接方法。

在Excel工具栏中依次点开“开发工具”、“查看源代码”,如下图:

Excel开发工具

什么?你的Excel没有这个功能?好吧,功能肯定是有的,只是你没打开而已。自行百度打开方式,或者查看《Excel表格中没有开发者工具?怎么办?》


下面,在开发工具中输入如下代码:

Sub test()
Dim count
Dim pic '图片13
Dim button '按钮8
Dim txtbox '文本框17
Dim comm '批注4
Dim other '其他未知
Dim msg '提示消息
Dim delpic
count = 0
pic = 0
button = 0
txtbox = 0
comm = 0
other = 0
respons = MsgBox("是否要清理表格中的图片,请谨慎操作!" & Chr(10) & _
"点击'是'清理图片,点击'否'跳过!", vbYesNo, "警告")
If respons = vbYes Then
delpic = True
Else
delpic = False
End If
For i = 1 To Sheets.count
For Each tb In Sheets(i).Shapes
If tb.Type = 13 Then
pic = pic + 1
If delpic Then
tb.Delete
End If
ElseIf tb.Type = 8 Then
button = button + 1
tb.Delete
ElseIf tb.Type = 17 Then
txtbox = txtbox + 1
tb.Delete
ElseIf tb.Type = 4 Then
comm = comm + 1
Else
other = other + 1
tb.Delete
End If
Next
'For Each tb In ActiveSheet.Shapes
'tb.Delete
'Next
Next
If delpic Then
count = button + txtbox + pic + other
Else
count = button + txtbox + other
End If
If count > 0 Or comm > 0 Or pic > 0 Then
msg = "共删除了" & count & "个对象;"
If button > 0 Then
msg = msg & Chr(10) & "按钮" & count & "个;"
ElseIf txtbox > 0 Then
msg = msg & Chr(10) & "文本框" & txtbox & "个;"
ElseIf pic > 0 And delpic Then
msg = msg & Chr(10) & "图片" & pic & "个;"
ElseIf other > 0 Then
msg = msg & Chr(10) & "未知对象" & other & "个;"
End If
If comm > 0 Then
msg = msg & Chr(10) & "有" & comm & "个批注没有处理;"
End If
If pic > 0 And Not delpic Then
msg = msg & Chr(10) & "有" & pic & "个图片没有处理;"
End If
Else
msg = "没有找到可以清理的对象!"
End If
MsgBox msg
End Sub

再点运行按钮,如下图:

Excel运行宏


经过漫长的等待后,运行完成,删掉输入的代码,保存Excel,看看是不是Excel文件变小了,同时打开也变快了呢?

经上面的一顿操作,其主要作用是删除Excel文件中的隐藏对象,这些隐藏对象,我们肉眼看不到,但非常多,几十万、上百万个都有可能,导致Excel本身很小但占用很大,计算机处理起来困难,这就非常卡了。形成隐藏对象的原因大多是复制粘贴导致的,具体原因本文不作讨论。

OK,问题得以解决。

Office 2020-02-10 15:46:26 13 1 17929 OfficeExcel
文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
利用python将doc文件批量转换为docx文件
用手机投射屏幕到win10上,win10投影到此电脑不可用怎么办?
MySQL如何根据父id递归查询所有子孙id
Everything快速搜索软件使用技巧
PHP上传超大表单数据丢失是什么情况?
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
开个淘宝网店买充值卡
免责声明
xhtml页面中用什么来替换marquee标签
利用http404错误防止网站文件夹被扫描
准备用心做个网站
可恶的垃圾留言,我诅咒。。
对于不支持htaccess的主机不带www的域名301跳转到带www的域名
网事札想
同学四年
简单的一个asp的分页程序
友情连接
春燕网络
乌拉文档
谢润的博客