寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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 12 1 16226 OfficeExcel
文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
儿子高烧终于退了
Nginx反向代理访问指定网站
Excel动态引用各表格指定单元格数据
用手机投射屏幕到win10上,win10投影到此电脑不可用怎么办?
2021年快年末了
Windows如何隐藏CMD命令运行窗口
Seafile删除文件后如何回收硬盘空间
PHP+MySQL基于地理位置信息的附近交友的实现
利用python将doc文件批量转换为docx文件
MySQL如何根据父id递归查询所有子孙id
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
封装一个php发QQ微博的类。
asp通用安全字符串输入替换server.htmlencode
php用fsockopen()函数实现模拟提交表单。
这只是广告
更新一下友情链接插件
Opera测试wap测试日志
At her home
批量设置连接在新窗口打开
请不要奇怪,为什么最近博客的文章是几年前的内容
网站安全让人担忧
友情连接
春燕网络
乌拉文档