Excel 公式不断恢复为原始 UDF 名称

Posted

技术标签:

【中文标题】Excel 公式不断恢复为原始 UDF 名称【英文标题】:Excel formula keeps reverting to the original UDF name 【发布时间】:2018-05-02 15:58:51 【问题描述】:

我制作了一个名为“GetField”的 UDF,并制作了一个调用了 384 次的电子表格。然后老板指出,按照Excel自己的风格,那应该是GETFIELD。所以我改变了它。但现在我无法更改表格中的公式 以使用新版本的名称。

如果我单击该字段并删除“d”,Excel 会显示包含可能命中的弹出窗口,包括 GETFIELD。如果我选择它,我可以看到编辑器将其更改为 GETFIELD,但如果我返回该字段,它会再次将其更改回 GetField。我尝试了该主题的多种变体,包括使用搜索/替换和重新输入整个内容,但每次都会恢复为原来的驼峰式名称。

有人知道让 Excel 更新名称的方法吗?

【问题讨论】:

尝试使用查找和替换。有“选项”,您可以在其中选择“匹配案例”。你可能在那里碰运气。您可能想建议您也使用所有小写字母来区分 UDF 和内置函数...... ;) 我确实尝试过。它有助于查找并替换所有 384 个实例...然后立即再次变回“GetField”! Excel 不关心函数名中的大写/小写,因此两者都应该可以工作。但是要更改解决方案是将VBA中的UDF重命名为XXDD之类的不同名称,然后使用replace将GetField更改为XXDD,然后将UDF重命名为GETFIELD并将XXDD替换为GETFIELD。这应该有效。 @Pᴇʜ - 好吧,让我试试吧! @Pᴇʜ 不错的解决方案。绝对值得发布作为未来用户参考的答案。 【参考方案1】:

首先,Excel 不关心函数名称中的大小写,因此无论您的 UDF 有什么大小写,两者都应该工作。

但要使其保持良好和一致,您可以通过首先将 UDF 重命名为任何其他名称来强制 Excel 进行特定的大写/小写更改。

例如,您的原始 UDF 名称是 GetField,而您想将其重命名为 GETFIELD

    将 VBA 中的 UDF 从 GetField 重命名为 MyTempName 等其他名称 查找/替换从GetFieldMyTempName 的所有公式 将 VBA 中的 UDF 从 MyTempName 重命名为 GETFIELD 查找/替换从MyTempNameGETFIELD 的所有公式

【讨论】:

【参考方案2】:

在 VBA IDE 中检查是否存在具有旧名称的函数的重复项,例如在个人 xlsb 库中。

【讨论】:

以上是关于Excel 公式不断恢复为原始 UDF 名称的主要内容,如果未能解决你的问题,请参考以下文章

VBA Excel UDF保留原始值

使用 VBA for Excel 在 UDF 中输入的名称无效

EXCEL中图表如何引用自定义的公式名称

通过公式或 UDF 定义命名范围

excel重感叹号(!)是啥意思

Excel中哪个函数可以统一去重复值后的唯一值的个数呢?