应用旧版兼容¶
位置:功能区 EGTools 选项卡 → EGTools 组 → 拆分按钮下拉菜单
在旧版 Excel 中打开由新版 Excel 编写的工作簿时,新函数会以 _xlfn.XLOOKUP
这样的损坏标记出现并产生 #NAME? 错误。此按钮将活动工作簿所有公式中的
现代/原生函数标记批量转换为 EGTools 兼容函数名,使公式在旧版 Excel 中
也能照常计算。
操作流程¶
- 保存确认 — 因为会直接修改公式,仅能在已保存的工作簿中执行。 如果尚未保存,会先询问是否保存后再继续(拒绝/取消则中止)。
- 预扫描 — 以只读方式遍历全部工作表的公式和定义的名称, 按函数汇总转换对象的数量并显示。没有转换对象时提示后结束。
- 备份 — 选择继续后,会在转换前自动保存备份文件
(与工作簿同一文件夹,
原名_egbak_<时间>.<扩展名>)。备份失败则不转换。 - 转换与结果 — 汇总显示转换位置数和备份文件路径。
转换规则¶
| 对象 | 转换 |
|---|---|
| 一般兼容函数 | _xlfn.函数 / _xlfn._xlws.函数 / EG.函数 → 函数(EGTools 直接替换名)。冲突名称 SORT/FILTER/LET 转换为 xSORT/xFILTER/xLET |
| IMAGE | _xlfn.IMAGE / EG.IMAGE → IMAGE |
| GROUPBY / PIVOTBY | 将函数名改为 GROUPBY/PIVOTBY,并给聚合器参数加引号(SUM 或 _xleta.SUM → "SUM";仅限原生支持的 16 种聚合器,LAMBDA 等则不改动该公式)。即使后面跟有可选参数也会转换(参数顺序与原生相同) |
_xlpm.*(LET/LAMBDA 参数) |
新版 Excel 保存 LET/LAMBDA 参数名的内部前缀。在旧版中会显示为 =_xlfn.LET(_xlpm.x, …),而含 _xlpm. 的公式会被 Excel 拒绝重写,因此去除该前缀(_xlpm.x → x)。在转换汇总中计入 _xlpm.* 项 |
_xll.* / _xludf.*(加载项 UDF 保存前缀) |
去除在未注册 EGTools 函数的环境中打开过的工作簿(尤其是定义的名称)中残留的前缀,重新连接到已注册的 EGTools 函数(_xll.xSORT(…) → xSORT(…))。不改动其他加载项的函数。在转换汇总中计入 _xll.* 项 |
字符串字面量内部或其他标识符的一部分不会被更改(按标识符为单位替换)。
备注¶
- 要还原时,请执行还原为内置函数或打开备份文件。
- 转换对象函数列表与加载项的函数注册列表按单一来源管理,始终保持一致。