加载中…
个人资料
EluneXY
EluneXY
  • 博客等级:
  • 博客积分:0
  • 博客访问:79,881
  • 关注人气:111
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

为什么Excel文件打开后全部格式都丢失了?

(2013-12-01 14:25:03)
标签:

excel

格式

丢失

保存

vba

分类: Excel基础操作

RT,为什么表格文件设置好格式保存后重新打开,结果全部格式都没了?

颜色、字体、单元格格式全都丢失了……像记事本上的数据一样。

 

首先,你用的Excel肯定是2007版本

其次,你的文件后缀基本上是xls格式………为什么Excel文件打开后全部格式都丢失了?

 

我们知道,2003版本是历经十多年仍然不乏忠实用户的经典版本,而后的2007版则是此后的第一次变革,格式、功能、编码方式改进的功能非常之多,而格式上的兼容性的问题也理所当然是存在的。

 

好了,究竟为什么呢?

其实最直接的原因就是:单元格格式超出限制而无法保存。

 

那么这个限制是多少呢?我们从微软的官网上的《工作表和工作簿规范与限制》可以得悉,

xlsx格式能支持的单元格格式个数是64,000,而xls格式文档能支持的单元格格式个数是4,000

 

因此第一种情况出现了,就是当我们将xlsx格式在Excel 2007中另存为xls格式时,由于兼容和格式识别上的问题,2007版Excel能将同一种格式识别为多种格式,当单元格使用区域较大时,就能简单导致“格式超出限制无法保存”的局面。

 

第二种情况就是,我们本身使用的是xls格式,但由于日积月累,Excel 2007随着记录的单元格格式的增多,最后也将导致格式过多而无法保存的情况。

 

所以,看看你没法保存格式的文件的“样式”列表里,是不是有很多很多很多没有格式的样式?

为什么Excel文件打开后全部格式都丢失了?

为什么Excel文件打开后全部格式都丢失了?



知道原因了,那么应该怎么善后呢?

说实话,这个还真没有好的办法,丢失了的就找不回来了,因为保存的时候已经被滤掉了:

 

1. 如果文件内只有一到两个工作表,那建议将工作表的数据复制到新工作簿中,再重新设置格式保存,当然格式最好是选择xlsx,毕竟这个能存储64K的格式,要是Excel 2007对格式一概不分青红皂白的话也得以撑久一点。

 

2. 如果文件内工作表数量较大,那只能删除既有的单元格样式,而这近4K的单元格样式,显然没办法手动来删除,我们一般都得借助VBA代码来删。

 

按Alt + F11快捷键进入VBE编辑窗口,双击左侧“资源管理器”(未显示时按Ctrl+R)其中一个Sheet,打开对应的代码窗口,将下面的代码复制进去,再按F5“运行”等待结果即可:

Sub ClearStyle()
    Dim Sty As Style
    For Each Sty In ActiveWorkbook.Styles
       If Not Sty.BuiltIn Then Sty.Delete
    Next
End Sub

当然,你要明白,上面两处方法都没有办法让丢失了的格式重新找回来!

即便是第2种方法,也只是让你可以重新设置格式并保存而已……

 

这种格式上处理问题,只有Excel 2007版本才存在,Excel 2010没有发现过,至于Office 2007的Service Package 1有没有改善这个问题,那就不得而知,但对于普通用户来说,还是建议装上这样的修复补丁,可以修复很多设计初期被遗漏而产生的Bug,如筛选复制默认不能复制可见单元格等日常使用上的功能缺陷。

 

最后还是一句,有选择权的话建议还是放弃Excel 2007,毕竟2010、2013都已经面世那么久,Excel 2007只是一个过渡性的测试版本,没完善的功能非常多,如透视表、图表……不然都注定会有一个悲催的结局。

 

 

----------------------

需要有偿解决Excel难题:http://excelstudio.taobao.com

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有