Login dark
author: love02xp
title: EXCEL2007格式丢失处理方法
date: 2019-10-12 16:11:05
category: [软件使用]
tags: [代码,Excel]
cover: http://image.cool02.com/blogimages/0CategoryExcel1.jpg

  是否遇到过这样的事:某天,突然发现Excel表格里面的格式全没了,只剩下文字、数字,但之前辛辛苦苦画制的框线、颜色、格式等全没了!这是怎么回事呢?<!--more-->
这是因为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文档吧,发现样式过多尽早处理,不要等到“爆表”坏了,再来处理就后悔末及了!