EXCLE不同单元格格式太多.doc_第1页
EXCLE不同单元格格式太多.doc_第2页
EXCLE不同单元格格式太多.doc_第3页
EXCLE不同单元格格式太多.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

cuidc高级书童终极解决EXCEL“不同单元格格式太多”的问题浏览303次 创建时间2008-05-08 00:32:13 - 作者 崔德春 -在英文版中的提示是 Too many different cell formats.一旦出现这个问题,文件可能无法打开。微软的这个错误可以出现在EXCEL 2003 及以前的各个版本,却没法提出解决方案,实在愚蠢。微软只是在网站上说,系统给的限制应该足够了。废话,足够了还能有这个错误信息吗?很多表格合并后一直到“保存成功”都看不到任何警告,等打开就不行了,灾难啊。搜索中文网站一无所获,无非让你手工修改格式。搜索2个多小时的英文网站,找到很多比较容易的解决方案。解决方案一: 这里提供一个 Xlsgen Style reduction tool,2M $49.90美元。试用版每次处理一小部分,我这成功地修复一个文件。(有破解就好了) 运行时把Working folder 改成c: 对处理过的文件再反复处理(如果是注册版应该一次解决).我发现试用版还悄悄把几处内容改为他们的广告.免费解决方案二:下载一个OPEN OFFICE,打开后再保存成Excel格式,很多老外都这么说,我没有实践过。 OpenOffice.Org 免费下载。方案三:一个文件用EXCEL 07打开正常,存成2000格式后就打不开。那就用07打开,分成两(或三、四)部分存成2000格式。方案四:如果EXCEL文件能打开编辑,可以试验一下这个VB程序,从老外的网站上抄来的。(用EXCEL的运行宏功能)Sub DeleteUnusedCustomNumberFormats()Dim Buffer As ObjectDim Sh As ObjectDim SaveFormat As VariantDim fFormat As VariantDim nFormat() As VariantDim xFormat As LongDim Counter As LongDim Counter1 As LongDim Counter2 As LongDim StartRow As LongDim EndRow As LongDim Dummy As VariantDim pPresent As BooleanDim NumberOfFormats As LongDim AnswerDim c As ObjectDim DataStart As LongDim DataEnd As LongDim AnswerText As StringNumberOfFormats = 1000ReDim nFormat(0 To NumberOfFormats)AnswerText = Do you want to delete unused custom formats from the workbook?AnswerText = AnswerText & Chr(10) & To get a list of used and unused formats only, choose No.Answer = MsgBox(AnswerText, 259)If Answer = vbCancel Then GoTo FinitoOn Error GoTo FinitoWorksheets.Add.Move after:=Worksheets(Worksheets.Count)Worksheets(Worksheets.Count).Name = CustomFormatsWorksheets(CustomFormats).ActivateSet Buffer = Range(A2)Buffer.SelectnFormat(0) = Buffer.NumberFormatLocalCounter = 1DoSaveFormat = Buffer.NumberFormatLocalDummy = Buffer.NumberFormatLocalDoEventsSendKeys tab 3downenterApplication.Dialogs(xlDialogFormatNumber).Show DummynFormat(Counter) = Buffer.NumberFormatLocalCounter = Counter + 1Loop Until nFormat(Counter - 1) = SaveFormatReDim Preserve nFormat(0 To Counter - 2)Range(A1).Value = Custom formatsRange(B1).Value = Formats used in workbookRange(C1).Value = Formats not usedRange(A1:C1).Font.Bold = TrueStartRow = 3EndRow = 16384For Counter = 0 To UBound(nFormat)Cells(StartRow, 1).Offset(Counter, 0).NumberFormatLocal = nFormat(Counter)Cells(StartRow, 1).Offset(Counter, 0).Value = nFormat(Counter)Next CounterCounter = 0For Each Sh In ActiveWorkbook.WorksheetsIf Sh.Name = CustomFormats Then Exit ForFor Each c In Sh.UsedRange.CellsfFormat = c.NumberFormatLocalIf Application.WorksheetFunction.CountIf(Range(Cells(StartRow, 2), Cells(EndRow, 2), fFormat) = 0 ThenCells(StartRow, 2).Offset(Counter, 0).NumberFormatLocal = fFormatCells(StartRow, 2).Offset(Counter, 0).Value = fFormatCounter = Counter + 1End IfNext cNext ShxFormat = Range(Cells(StartRow, 2), Cells(EndRow, 2).Find().Row - 2Counter2 = 0For Counter = 0 To UBound(nFormat)pPresent = FalseFor Counter1 = 1 To xFormatIf nFormat(Counter) = Cells(StartRow, 2).Offset(Counter1, 0).NumberFormatLocal ThenpPresent = TrueEnd IfNext Counter1If pPresent = False ThenCells(StartRow, 3).Offset(Counter2, 0).NumberFormatLocal = nFormat(Counter)Cells(StartRow, 3).Offset(Counter2, 0).Value = nFormat(Counter)Counter2 = Counter2 + 1End IfNext CounterWith ActiveSheet.Columns(A:C).AutoFit.HorizontalAlignment = xlLeftEnd WithIf Answer = vbYes ThenDataStart = Range(Cells(1, 3), Cells(EndRow, 3).Find().Row + 1DataEnd = Cells(DataStart, 3).Resize(EndRow, 1).Find().Row - 1On Error Resume NextFor Each c I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论