2招根治Excel "不同的单元格格式太多"
Excel非常能干,但也很调皮,它不仅会嘲笑你。

还会时不时跳出个陌生的提示,刷刷存在感的同时让你的工作进行不下去。
今天,同事的电脑上就跳出了这么个东西,复制粘贴没法进行,边框底纹也设置不了。

原来都是自定义格式太多搞的鬼,长年累月的积累、不同数据源的粘贴、不同使用者的手工定义都会造成这个问题。

注意右边那个已经到底的滚动条
怎么解决这只拦路虎,就是我们今天的课题了。
2种方法,为了方便说明,我把原文件复制了2个副本,一个改名叫暴力法,一个改名叫VBA脚本法。
简单粗暴的先上。
暴力法

Step1:把暴力法文件的扩展名改成zip或者rar。(这两种都是常见的压缩文件格式,新版的Excel保存格式xlsx实际上就是一种压缩文件。)

Step2:用压缩软件打开改名后的文件,将xl目录中的style.xml文件删除。让你变成一个没有style的阉割版表格文件,够粗暴!

Step3:把文件的扩展名改回xlsx。嗯,像流水线!


Step4:打开并按照上面的提示修复文件。就会得到下图的效果。

虽然所有的自定义格式都被消灭了,但所有的单元格都变成了没有格式的状态了。
总结:优点:操作简单见效快。缺点:还要费时费力地再设置一遍格式。
VBA,微软Office自带的可编程模块可以更省事一些。
VBA脚本法
打开Excel文件。

Step1:在Excel窗口按下组合键“Alt+F11”召唤VBA编辑器。
Step2:在VBA编辑器的菜单中选择“插入”“模块”。
Step3:在模块的代码编辑窗口贴上以下代码(注意换行):
Sub deleteStyles()
Dim s As Style
On Error Resume Next
For Each s In ThisWorkbook.Styles
If Not s.BuiltIn Then s.Delete
Next
MsgBox "所有讨厌的自定义格式都删除啦!"
End Sub
这段代码的意思就是查找每个工作表中的非内建格式并且删除,完成后显示一个信息“所有讨厌的自定义格式都删除啦!”。

Step4:运行这段代码。在经过漫长的耐心等待(疑似死机)之后,它终于发送了完成的信号。其实不讨厌的自定义格式也删除了。


可以看到,原有格式都得以保留了。
总结:优点:原有格式不会丢失。缺点:等待的时候令人抓狂。
注:转载 《戴月轻IT》公众号,如有侵权,请联系删除。