EXCEL中单元格的样式故障疑难解析

时间:2022-03-28 05:59:23

EXCEL中单元格的样式故障疑难解析

摘要:探讨excel电子表格复制失败的原因。反复试验,探究真相:单元格样式过多造成电子表格无法复制。运用宏的方法删除过多的样式,排除故障。

关键词: excel;单元格样式;删除;复制

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2016)32-0243-02

笔者原来使用的是excel2003,由于工作需要,常常在不同的excel文件之间复制粘贴数据。后来,office2003办公系统升级到office2007。基于软件产品均有向后兼容的特点,我们能够使用excel2007办公软件打开excel2003格式的文件。

在使用现有的EXCEL2007办公软件编辑原有的excel2003格式的文件时,会有复制失败的情况发生,令人困惑。

1 什么是单元格样式

单元格样式是excel中一组已定义的格式特性组合。比如字体、字号、数字格式、单元格边框以及单元格底纹,等等。

这些格式特性组合可以使用可锁定单元格的单元格样式,防止其他人对特定单元格进行更改。Office Excel 2007 包含若干内置单元格样式,可以应用或修改这些样式。还可以修改或重制单元格样式以创建自己的自定义单元格样式。

2 单元格样式的使用

单元格样式是基于整个工作簿的文档主题的应用。当您切换到另一主题时,excel2007将自动对单元格样式进行更新以匹配新主题。

实际上,我们可以把单元格样式理解为“预先定制”的格式集合,在应用这个样式时,相当于“批处理” 预先定制的格式集合。从而达到统一,高效,快捷地排版的目的。

3 出现故障的原因

为什么用户在使用excel2007打开excel2003文件时,会出现提示:“不同的单元格格式太多”,粘贴失败。见图1:不同的单元格格式太多。

图1 不同的单元格格式太多

我们通过故障再现,反复试验,终于发现,用户在不同的excel文件间复制粘贴数据时,单元格样式也一起复制了。这就会导致excel文件的样式一直在增加,当达到一定程度时,excel不能保存更多的样式,那么复制就会失败。总之:无效样式过多,就产生了这种复制失败的现象。

4 修复故障

思路:测试本工作薄中有多少个样式,分别是哪些样式,然后删除没有使用价值的样式。

1)显示工作薄中的单元格样式数量

Sub 使用宏显示活动工作薄中单元格样式的数量()

dim a

a=activeworkbook.styles.count '活动工作薄中共有多少个样式

msgbox(a) '以对话框的形式显示样式个数

End Sub

运行结果见图2:单元格样式的数量

图2 单元格样式的数量

2)查看活动工作薄中有哪些样式。

方法一:利用菜单栏。单击"开始"―"单元格样式",在弹出的列表框中列出该活动工作薄中全部的单元格样式。见图3:单元格样式列表。

图3 单元格样式列表

方法二:使用宏。将活动工作薄中的样式输出到d:\allstyles.txt文本文件中,然后打开该文本文件任意查看这些样式。

操作步骤:第1步:单击"开发工具"―"宏",在宏名文本框中输入新创建的宏的名称:“显示所有宏名”,单击“新建”按钮。见图4:宏对话框。

图4 宏对话框

第2步:在弹出的窗口中输入代码。

Sub 显示所有宏名()

Dim k, i

Open "d:\allstyles.txt" For Output As #1

k = ActiveWorkbook.Styles.Count

For i = 1 To k Step 1

Print #1, ActiveWorkbook.Styles(i).Name

Next i

End Sub

第3步:单击“保存”按钮,然后执行。这样本活动工作薄中的所有样式均输出到d:\allstyles.txt文本文件中了。我可以打开d:\allstyles.txt文件,仔细查看这些样式。

3)删除样式。通常情况下,保留normal,删除其他样式。

方法一:一个个地删除。

操作步骤:第1步:单击“开始”菜单―“单元格样式”按钮下方的三角形,弹出单元格样式对话框。见图5:单元格样式。

图5 单元格样式

第3步:右击某个样式,在弹出的快捷菜单中,选择删除。

重复以上步骤,删除没有使用价值的样式。在实际操作中,往往由于工作簿中的自定义单元格样式非常多,手动逐一操作显得不太可能。

方法二:使用宏

操作步骤:第1步:按Alt+F8,弹出“宏”对话框,在宏名文本框中,输入宏名:“使用宏批量删除所有非normal的样式”,单击“创建”按钮。见图6:宏窗口。

图6 宏窗口

第2步:输入代码。

Sub 使用宏批量删除所有非normal的样式()

dim a,i

EX:

a=activeworkbook.styles.count

msgbox(a)

For i = 1 To activeworkbook.styles.count

On Error Resume Next

if ActiveWorkbook.Styles(i).name "normal" then ActiveWorkbook.Styles(i).Delete

Next i

If ActiveWorkbook.Styles.Count > 2 Then GoTo EX

End Sub

第3步:单击“保存”按钮,然后执行。这样本活动工作薄中的仅保留normal样式,其他样式均已经删除了。

5 拓展应用

故障描述:在使用excel2007打开excel2003格式的文件时,修改字体、字号等等格式,然后保存,再打开,发现还是原样,也就是说格式保存不了。

故障原因:单元格样式过多。

修复故障:同上,即删除该文件中多余的单元格样式,就可以保存单元格样式啦。

参考文献:

[1] Excel Home.Excel 2010应用大全[M].人民邮电出版社,2011:166-176.

[2] 罗刚君.Excel VBA程序开发自学宝典[M].3版.电子工业出版社,2014:5-25.

上一篇:浅析计算机体系结构软件的模拟技术 下一篇:基于控制理论的微粒群算法分析和改进