您的位置:首页 > 其它

为什么Excel文件打开后全部格式都…

2014-01-14 14:20 141 查看
RT,为什么表格文件设置好格式保存后重新打开,结果全部格式都没了?

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

 

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

其次,你的文件后缀基本上是xls格式………


 

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

 

好了,究竟为什么呢?

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

 

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

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

 

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

 

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

 

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









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

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

 

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

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐