为什么exll表格关了在打开乱了

如题所述

Excel表格保存关闭,再打开格式全变了
我用的是office07,在xlsx的格式随便怎么搞下都没有问题,
但是另存为xls格式后,在xls格式下修改内容--保存--关闭--再打开格式就全部变了(有时候另存完了就关了,再打开不会发生任何变化,但是有时候了另存完了就出错了):重新打开后表格线没有了,日期变成数字格式、公式等等等等全部没有了,保存的时候也没提示任何错误。我把没有发生错误的xls文件发给同事,让他重复我上面的动作(修改内容--保存--关闭--再打开)也会出现一样的问题,所有我猜测是那个文件哪里的设置碰到了,而且那个文件的内容复制到另外的正常的文件下,再保存也会出现这个问题。现在百度搜遍了好像也没找到解决办法。求大神,彻底没辙了。
有些格式内容会丢失吧,而且又时候文件还特别大。
文件不大 如果从有问题那个表上复制一个数据 粘到正常的文件里面 再保存也会出现问题
用这个代码把单元格格式里面的一些乱七八糟的格式(如附件)删除掉就可以了
Sub test()
Dim mystyle As Style
For Each mystyle In ActiveWorkbook.Styles
If mystyle.BuiltIn = False Then mystyle.Delete
Next
End Sub
通常这些样式是由复制粘贴而来。
完全正确,我也经常遇到这种情况,自己做的表格没有发生过,复制其他表格就容易发生。难道是2007的BUG?
一个解释,我觉得应该是正解,供大家参考。
首先,你用的Excel肯定是2007版本!
其次,你的文件后缀基本上是xls格式………
我们知道,2003版本是历经十多年仍然不乏忠实用户的经典版本,而后的2007版则是此后的第一次变革,格式、功能、编码方式改进的功能非常之多,而格式上的兼容性的问题也理所当然是存在的。
好了,究竟为什么呢?
其实最直接的原因就是:单元格格式超出限制而无法保存。
那么这个限制是多少呢?我们从微软的官网上的《工作表和工作簿规范与限制》可以得悉,
xlsx格式能支持的单元格格式个数是64,000,而xls格式文档能支持的单元格格式个数是4,000;
因此第一种情况出现了,就是当我们将xlsx格式在Excel2007中另存为xls格式时,由于兼容和格式识别上的问题,2007版Excel能将同一种格式识别为多种格式,当单元格使用区域较大时,就能简单导致“格式超出限制无法保存”的局面。
第二种情况就是,我们本身使用的是xls格式,但由于日积月累,Excel2007随着记录的单元格格式的增多,最后也将导致格式过多而无法保存的情况。
所以,看看你没法保存格式的文件的“样式”列表里,是不是有很多很多很多没有格式的样式?
知道原因了,那么应该怎么善后呢?
说实话,这个还真没有好的办法,丢失了的就找不回来了,因为保存的时候已经被滤掉了:
1.如果文件内只有一到两个工作表,那建议将工作表的数据复制到新工作簿中,再重新设置格式保存,当然格式最好是选择xlsx,毕竟这个能存储64K的格式,要是Excel2007对格式一概不分青红皂白的话也得以撑久一点。
2. 如果文件内工作表数量较大,那只能删除既有的单元格样式,而这近4K的单元格样式,显然没办法手动来删除,我们一般都得借助VBA代码来删。
按Alt +F11快捷键进入VBE编辑窗口,双击左侧“资源管理器”(未显示时按Ctrl+R)其中一个Sheet,打开对应的代码窗口,将下面的代码复制进去,再按F5“运行”等待结果即可:
Sub ClearStyle()
Dim Sty AsStyle
For Each StyIn ActiveWorkbook.Styles
If Not Sty.BuiltIn Then Sty.Delete
Next
End Sub
当然,你要明白,上面两处方法都没有办法让丢失了的格式重新找回来!
即便是第2种方法,也只是让你可以重新设置格式并保存而已……
这种格式上处理问题,只有Excel2007版本才存在,Excel 2010没有发现过,至于Office 2007的Service Package1有没有改善这个问题,那就不得而知,但对于普通用户来说,还是建议装上这样的修复补丁,可以修复很多设计初期被遗漏而产生的Bug,如筛选复制默认不能复制可见单元格等日常使用上的功能缺陷。
最后还是一句,有选择权的话建议还是放弃Excel2007,毕竟2010、2013都已经面世那么久,Excel2007只是一个过渡性的测试版本,没完善的功能非常多,如透视表、图表……不然都注定会有一个悲催的结局。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-24
提问好好看看嘛,
说的不清不楚的,
最好上图上示例吧!
相似回答