Excel文件减肥修复终极办法----解决Excel文件打开慢的问题
来源:互联网 发布:ubuntu 16镜像下载 编辑:程序博客网 时间:2024/05/17 06:34
iamlaosong文
Excel文件在使用过程中由于各种原因会变得越来越大,有的文件甚至存在一些问题,导致文件大,打开慢,实在让人头疼。网上有很多办法,无非是删除内容、删除对象等等,但这些办法有时难以凑效,如一些隐含的东西或者变异(变坏)的东西是无法删除的,比如建立一个数据透视表,后来又删除了,那么这个透视表虽然删除了,这个对象还是存在的(用VBA代码刷新透视表不会报错)。还有一些已经损坏的Excel文件,虽然不大,但打开特别慢,我曾碰到这样的文件,打开很慢,打开后,菜单中的单元格样式处显示的都是?(说明文件有问题),文件的内容也无法复制粘贴(编辑栏复制粘贴还是可以的),如下图:
对这样的文件如何处理呢?
下面介绍一个终极办法,这个办法的中心思想就是保存文件的有效内容,对于单个工作表文件,当然可以保存为文本或者CSV格式的文件,但多个工作表的话,如果一个个保存就太麻烦了,而且不能保存工作表内容的格式。下面的办法不仅可以保存多个工作表文件,而且能够尽可能的保存原来的工作表的格式。方法如下:
1、打开文件,删除所有不需要的内容和对象(可以按F5定位)。
2、将文另存为网页格式,最好使用单个文件网页,一个文件嘛,处理比较简单,保存后关闭Excel。
3、用Excel重新打开这个网页文件,打开后可以看到原来的工作表内容,只是新的Excel文件没有网格显示。
4、在选项中加上网格显示(见后面),再另存为Excel文件,至此文件减肥完毕。
经过这样处理的Excel文件将保留其有效内容,其它无关的一概删去(包括一些已经损坏的东西),文件会大大减小。
多个工作表同时加网格线的方法是(2007版):选中所有工作表(按Ctrl键或者Shift键选择),打开Excel选项,选择高级中的“显示网格线”勾上,如下图:
最后说一下注意事项:
1、因为单元格宽度导致的一些日期、数字无法正常显示的(一般显示为#)要调整宽度让其显示出来,如选择自动调整列宽。文本过长显示不全,没有关系,可以不调整。
2、如Excel文件含有VBA代码,转换后的文件不再包含代码,不过可以在转换后再插入模块,将代码复制过来既可,因为原文件中包含的按钮新文件依然存在,按钮指定的宏也没变。
==============================================
上述过程也可以通过VBA编写宏来实现(点击打开下载链接),界面和代码如下:
Sub trans_file() Dim cnn, rst, cmd As Object Dim datFile, datWebFile, datFullName, datFullWebFile As String On Error GoTo Err thisfile = ThisWorkbook.name '本文件的名字,这样赋值就可以随便改名了 Worksheets("系统参数").Select If Cells(3, 2) = "Y" Or Cells(5, 2) = "y" Then '导出出库文件 Application.ScreenUpdating = True Else Application.ScreenUpdating = False End If 'If MsgBox("开始生成清分数据......", vbOKCancel, "iamlaosong") = vbCancel Then Exit Sub lineno = [B65536].End(xlUp).Row '行数,文件数量 For unit_num = 5 To lineno '文件循环 datFile = Cells(unit_num, 2) '文件名称 datWebFile = Left(datFile, InStr(datFile, ".")) & "mht" datFullName = ThisWorkbook.Path & "\" & datFile datFullWebFile = ThisWorkbook.Path & "\" & datWebFile If Dir(datFullName, vbNormal) <> vbNullString Then Workbooks.Open Filename:=datFullName '打开文件 Cells.Select Selection.Columns.AutoFit '调整列宽,防止因列宽导致日期、数值显示为#号的问题 ActiveWorkbook.SaveAs Filename:=datWebFile, FileFormat:=xlWebArchive ActiveWindow.Close Workbooks.Open Filename:=datFullWebFile For i = 1 To Worksheets.Count Worksheets(i).Select ActiveWindow.DisplayGridlines = True colno = [IV2].End(xlToLeft).Column For j = 1 To colno colName = Chr(j + 64) 'Debug.Print IsNumeric(Range(colName & "2")) 'Debug.Print Len(Range(colName & "2")) If IsNumeric(Range(colName & "2")) And Len(Range(colName & "2")) >= 12 Then '科学计数法转换成文本 Columns(colName & ":" & colName).Select Selection.NumberFormatLocal = "000000" End If Next j Next i Worksheets(1).Select datFile = "new" & Left(datFile, InStr(datFile, ".")) & "xls" ActiveWorkbook.SaveAs Filename:=datFile, FileFormat:=xlNormal 'xls=xlNormal,xlsx=xlOpenXMLWorkbook ActiveWindow.Close Else MsgBox "数据文件不存在!", vbOKOnly, "iamlaosong" Exit Sub End If 'ActiveWorkbook.Save 'ActiveWindow.Close Windows(thisfile).Activate Worksheets("系统参数").Select Cells(unit_num, 3) = "成功" 'Application.StatusBar = "已完成:100.00%" Next unit_num MsgBox "处理完毕!", vbOKOnly, "iamlaosong" Exit SubErr: MsgBox "错误#" & Str(Err.Number) & Err.Description & "-位置: " & datFile, vbOKOnly + vbExclamation, "iamlaosong"End Sub
- Excel文件减肥修复终极办法----解决Excel文件打开慢的问题
- 用EXCEL打开TXT文件的办法
- Excel的文件打开特别慢,xls文件特别大解决一例
- 关于“解决Excel打开DBF文件”问题的危害
- 解决无法直接打开EXCEL文件的问题
- 解决Excel 2016无法直接打开文件的问题
- 解决excel下打开文件灰色看不到的问题
- Excel文件减肥和加速
- 解决编辑SharePoint 的Excel文件时(使用本地Excel 2010) 报错。"Microsoft Excel 无法打开或修复此工作薄,因为它已损坏"
- word或excel打开很慢的处理办法
- 解决VB.net使用COM控件加载Excel文件速度慢的问题
- excel2007如何解决双击打开excel文件出错问题
- 解决双击文件打开很慢的问题
- 解决myeclipse中打开jsp文件很慢的问题
- 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- [置顶] 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- win32 (MFC) 无边框标题栏移动窗口方法
- optimize table优化MySQL的作用
- 最全log4j日志输出方式
- 哈希拓展——布隆过滤器
- 关于移动端点击后出现闪或者黑色背景
- Excel文件减肥修复终极办法----解决Excel文件打开慢的问题
- Screen Linux强大命令,远程管理多任务操作必备
- 理解自动释放池
- Hadoop中NameNode节点起不来可能出现的原因
- ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
- expdp query导出报错 ORA-29913 ORA-01722
- MAC 下开发 不区分大小写问题及解决
- 大数据学习入门级书籍推荐
- java集合-hashMap与TreeMap