首页 > 解决方案 > Windows 升级后 Excel VBA 的奇怪宏行为

问题描述

我有一个宏,它通过处理 70 多个 Excel 文件生成报告,并且已经工作了好几个月,并且仍然可以在我拥有的另一台笔记本电脑上工作。大约 10 天前,我的主笔记本电脑升级到了 Windows 11,虽然宏上周工作,但它本周停止了,并产生了奇怪且不一致的结果。它继续在我的另一台运行 Windows 10 的笔记本电脑上工作。我尝试删除 PERSONAL.XLSB 并重新创建它,但宏仍然无法正常工作。在针对其中一个错误(它开始返回等号而不是封闭工作簿中单元格的内容)编写解决方法后,它的运行时间从 1 分钟缩短到了大约 2 小时。与此同时,另一台笔记本电脑在大约一分钟内完成了原始未修改的宏。

我想知道是否有人有任何建议我可以尝试让 Excel 再次为我的宏工作?我从 Microsoft 365 运行 Excel 的桌面版本。

更新:我注意到速度变慢是因为在我设置后它会在打开工作簿后Application.calculation = xlCalculationManual神秘地重置:xlCalculationAutomatic

                debugPrint "--2.1 else", Application.calculation = xlCalculationManual

                Set reportFileWB = Workbooks.Open(FileName:=templateFileFull, passWord:=pw)
                
                debugPrint "--2.2 else", Application.calculation = xlCalculationManual

debugPrint 是我自己的函数,它只是将调试输出放入一个框中以使其更加突出。为什么打开工作簿会导致Application.calculation重置回自动?

标签: excel

解决方案


推荐阅读