excel - 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
重置回自动?
解决方案
推荐阅读
- java - 如何使用 JSP 在 Spring MVC 中配置验证检查?
- javascript - 解析月份列表序列后更改
- r - R中的下一个工作日收益
- base64url - base64encoded pdf在html页面中不起作用
- reactjs - 使用 serve 包运行时的反应构建文件夹会在检查器中公开 src 文件
- ios - 使用 Objective C 在 iOS 中录制慢动作视频
- node.js - How to monitor Dockerized Nodejs application through NewRelic?
- sql - Optimization SQL, not in/not exists?
- c++ - 错误赋值给数组类型的表达式
- javascript - Trying to reverse the JavaScript trigger of an HTML/ CSS switcher