一般是旧版本的excel打开高版本时,比如2003(当然是安装过兼容包的)打开2007或以上版本的excel进行复制粘贴,有可能出现“不同的单元格格式太多”,或者真的是格式太多。如何解决这个问题,有的说用格式刷刷一遍,这个意思就是把格式统一成单一的,但可能是excel保存的曾经定义过的格式,特别是用的比较久的表,而不是正在使用中的格式,所以统一格式并不能解决。要手动删除也是可以的,只是一个一个去删不太可能,既然会报格式太多,格式就不是十几或几十个的样子(这里给一个手动删除excel2016的路径,开始-单元格格式,右键点击删除)。比较有效的方法之一是把工作表整体复制到新建的一张空白工作表中,甚至可以带格式复制,前面说了,格式太多,并不一定是指在用的格式多,所以带格式复制,既保留在用格式,也能解决。只是如果工作簿里工作表多,一个一个复制,够呛。
所以网上一般建议用VBA来解决,2016为例,可先在选项中自定义功能区,加上开发工具,就可以从中打开Visual Basic,或者直接按快捷键alt+F11,也能打开VBA,插入模块,录入以下代码:
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
以上代码就是用删除所有自定义的格式,当然网上的类似代码很多,略有不同,但基本就是这样,就不一一抄过来了,有的代码还判断一轮是否是excel自带的格式,但此删除只针对自定义,所以就无所谓判断。录完后点击运行按钮或运行菜单中的运行子过程/用户窗体,看到提示框,如前面代码中的“删完”,就完成了。最后记得保存一下excel,这个代码不想再用了,可以删掉再保存,省得变成宏警告。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2112.html