零贰'Blog

零贰'Blog - 记录日常点点滴滴..........

EXCEL2007格式丢失处理方法

学习代码Excel
  是否遇到过这样的事:某天,突然发现Excel表格里面的格式全没了,只剩下文字、数字,但之前辛辛苦苦画制的框线、颜色、格式等全没了!这是怎么回事呢?
    这是因为Excel整天记录样式造成的,特别是当你从旧的Excel中复制带有格式的数据过来,粘贴时又没有选择“仅数值”时,这种滚雪球式的样式积累更是严重,于是终于有一天,样式“爆表”了,就全没了,只留下无数的“样式”记录在你的“开始”-“样式”的下拉菜单中。下面我们要做的就是清除这些样式,给表格减压。

#####方法一:傻瓜式

    手工在不对眼的样式上一个个点右键,选删除,就搞定了,够傻瓜式吧!样式达到“爆表”程度一般“”至少上千个,可以测试删除者的耐心^_^。

#####方法二:VBA宏脚本,自动删除所有样式,是所有!   在excel2007菜单栏内找到“开发工具”–“visual basic”(如果没找到开发工具,在Excel选项的常规中钩上“功能区显示开发工具”就有了)–双击sheet1(如果是一片空白,则请选择“视图”–“工程资源管理器”就有显示了,其实双击其中任意一个表格对象都行)–将以下代码替换掉右侧弹出来的代码:

Sub X()
For Each s In ActiveWorkbook.Styles
'MsgBox s.Name
On Error Resume Next
If Len(s.Name) > 0 And s.Name <> "Normal" Then
s.Delete
End If
If Err.Number > 0 Then
e = "Error occour on deleting Style named " & s.Name
e = e & vbCrLf & "Err:" & Err.Number & "->" & Err.Description
MsgBox e
Err.Clear
End If
Next
End Sub

直接按F5或者点击“运行”-“运行宏”运行一下。 切回表格看下,里面的样式是不是全没了。

#####方法三:VBA宏脚本,自动删除所有自定义样式,只保留系统默认样式! 同上,只是代码改为:

Sub test()
Dim mystyle As Style
On Error Resume Next
For Each mystyle In ActiveWorkbook.Styles
If mystyle.BuiltIn = False Then mystyle.Delete
Next
End Sub

运行,搞定!

对于经常不用选择性粘贴使用Excel的朋友,赶紧检查一下那些用了很久的Excel文档吧,发现样式过多尽早处理,不要等到“爆表”坏了,再来处理就后悔末及了!