excel学习库

excel表格_excel函数公式大全_execl从入门到精通

EXCEL提示“不同的单元格格式太多”的苦果,利用VBA彻底解决!

今日也是应读者的需求利用VBA解决实际问题。学而不用则殆!学习了新的知识就是要不断的利用,提升,再利用再提升。所以要给这位提问题的朋友点赞! 有的读者问:如何利用VBA来解决Excel提示不同的单元格格式太多的问题呢? 首先,我们先分析一下这个情况是什么时候发生,一般有几种情况会发生这类问题。 1复制粘贴时,这时会提示单元格格式太多,无法粘贴,而且要经过长时间的不知在做什么的处理过程,然后,EXCEL崩溃。你只能重启。 2在移动工作表时,将工作表整体从一个文件转移到另一个工作表时,也会出现这个问题,现象和上述一样。 3 在筛选数据时,有时候,在筛选一个值时,往往会出现上述的提示,当你按确认键后,EXCEL会再次计算,好在不会崩溃,只是时间非常长,这种情况往往出现在这个工作表的数据量巨大,往往是1万行以上的数据。 然后,我们分析一下上述问题产生的原因。其实这类问题的产生不是用户的错,而是OFFICE系统,或者说,EXCEL从03版升级到07版之后,带给用户的 一个遗留问题,他们潇洒的升级完了,但留下了一堆苦果让用户去慢慢品尝。为什么这么说呢?一点也不过分!03版和07版不兼容就是罪魁祸首。在07版加入了很多全新的内容,这些在03版及低版本无法显示,才出现了上述的问题。 所以,当你用07版本打开03版本;或者03版打开07版本(有兼容包);或者是往03版本拷贝07版本数据;或者是往07版本拷贝入03版本数据时,极易发生上述问题。如果一个工作表的数据既有03版本的又有07版本的,那么你非常的不走运,在你筛选时,很可能就是这个苦果。 问题的原因分析完了,那么怎么解决呢? 办法一:在工作表中刷格式,采用一个格式全部的刷一遍,但也不能很好的解决问题。 办法二:新建一个工作表,把原数据数值粘贴到新的工作表中,原来的格式全然没有了。 办法三:就是今天我们重点讲的VBA方法: 拷入下面的代码: Sub KK() 2 Dim s As Style 3 Application.ScreenUpdating = False 4 On Error Resume Next 5 For Each s In ThisWorkbook.Styles 6 If Not s.BuiltIn Then s.Delete 7 Next 8 Application.ScreenUpdating = True 9 MsgBox ("OK") 10 End Sub 很简单的几行代码,往往能解决很大的问题。代码讲解: (1)Application.ScreenUpdating = False Application.ScreenUpdating = True 上述语句是成对出现的,前者是关闭屏幕更新,以提高程序的效率;后者是打开屏幕刷新, (2)On Error Resume Next 忽略错误,继续执行 (3)第五行和第七行构成了一个FOR NEXT语句,此语句在之前的文章中讲过,不过这里用的是For Each s In ThisWorkbook.Styles,翻译过来就是说对于这个工作表中所有的格式将进行的操作,什么操作呢?就是: If Not s.BuiltIn Then s.Delete 执行到这里,所有的自定义格式全部被删除掉了。 (4)最后全部执行完成弹出对话框:MsgBox ("OK") 看我们的代码截图: 剩余的工作就是,画个按钮,连锁上述代码,就可以了,经测试,这个方法还是可行的,如有遇到这个问题的读者可以试试看啊。 今日技巧提示: 1 Application.ScreenUpdating = False;Application.ScreenUpdating = True 的作用是什么?能否单独出现? 2. On Error Resume Next 作用是什么? 3,For each next 语句是否理解呢? 分享成果,随喜正能量

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接