问题解决方法分为两步:第一步使用宏删除正常的自定义样式;第二步使用特殊方法删除僵尸样式。亲测可以完美解决。(楼主遇到到方法无效有可能是因为Excel没有打开宏功能,因为Excel默认禁用宏,打开宏功能方法如下:选项,信任中心,信任中心设置,宏设置,勾选启用所有宏选项和信任对VBA工程对象模型的访问选项。如果宏打开了还会卡死,则是因为代码里面缺少了一行跳过僵尸样式的代码,所以遇到僵尸样式会卡死,用我下面分享的代码即可。)
第一步:在宏里面运行以下程序,绝大部分自定义样式可以批量删除。
SubStyleKill()
DimstyTAsStyle
OnErrorResumeNext
ForEachstyTInActiveWorkbook.Styles
IfNotstyT.BuiltInThen
styT.Delete
EndIf
NextstyT
EndSub
第二步:删除僵尸自定义样式
左边是英文原文答案,右边是百度翻译的,如果中文看不懂,可参考左边英文。在这里我补充几点实践中的经验:首先,在把Excel文件后缀修改成为.zip之前,把僵尸样式的名称先复制粘贴到Word中。这样在使用记事本打开的.xml文件中方便查找删除。第二,在.zip文件中很可能不能用记事本打开.xml文件,这个时候可以把.xml文件拖到桌面,用记事本打开,然后查找到刚才粘贴出来的僵尸样式的名称,把包含这个名称的括号里面的内容都删掉,挨个删完之后,再把这个文件拖回到.zip文件里面就好啦。
辛苦总结+手打,记得点赞哦!