我最近获取了一个大的、稳定的 XLSM 文件,并将其分成 XLAM 和 XLSX。 XLSX 中的数千个单元调用 (udfs) 在 XLAM 中运行,每个此类 udf 都以语句“Application.Volatile”开头(过度杀伤,强制重新计算)。
XLSX 不会通过 Ctrl-Alt-Shift F9 使用 F9 重新计算,也不会通过 Application.CalculateFull 使用 Cell.Calculate 重新计算。 XLSX 单元格简直“死了”……但是……如果我按 F2 编辑公式,然后按 Enter,我可以一一重新唤醒它们。以这种方式重新唤醒的细胞似乎保持清醒状态,并在此后正常重新计算。
有人遇到过这种奇怪的行为吗?还有什么其他方法可以强制 Excel 从头开始重建计算图吗?
一个额外的说明,以防万一:我通过文件打开打开了 XLAM 和 XLSX,并且没有使用文件...选项...插件路径安装 XLAM - 因为过去我这样做过,当您“取消选中”并安装 XLAM 时,所有 UDF 引用都会被完整路径名链接替换 - 非常丑陋。或者,如果有人可以概述安装 XLAM 插件的解决方法,并且不会在任何地方创建损坏的链接,我也会这样做。
最佳答案
这有效:
Sub Force_Recalc()
Cells.Replace What:="=", Replacement:="=", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
关于excel - 用户定义函数不重新计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719650/