【问题标题】:Excel formula keeps reverting to the original UDF nameExcel 公式不断恢复为原始 UDF 名称
【发布时间】: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ᴇʜ 不错的解决方案。绝对值得发布作为未来用户参考的答案。

标签: excel user-defined-functions vba


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多