【问题标题】:VBA excel Overload another add-in functionVBA excel 重载另一个加载项函数
【发布时间】:2011-01-08 00:15:31
【问题描述】:

问题! 我有一个我们在工作中创建的加载项,比如 foo.xla,它有一个函数 foo_sub(arg1)。

现在,我想改进 foo_sub(arg1) 的行为方式,但无需编辑原始加载项代码,因为一旦他们更新它,我必须将我的代码从旧加载项迁移到新加载项。

有没有办法我可以在不同的加载项中编写 foo_sub(arg1),比如 fee.xla,这样每次我从工作表中调用 foo_sub 时,被调用的就是我写的那个?

提前致谢

【问题讨论】:

    标签: excel overloading vba


    【解决方案1】:

    我在尝试overload a constructor in VBA in Excel 时遇到了很多类似的问题。

    但是,我认为您的问题有点不同。您不一定要通过提供具有相同名称和不同参数的单独方法来尝试重载函数;您正在尝试添加一个名称、返回类型和参数完全相同的方法,并想办法让 Excel 调用您的函数而不是加载项。

    我不肯定,但我认为这在 Excel VBA 中是不可能的。如果您尝试调用在多个位置定义的函数,它会感到困惑并告诉您它不知道要调用哪个函数。

    您可以创建一个名为my_foo_sub(arg1) 的包装函数,其中包含自定义代码。然后,如果您需要在更新.xla 文件时切换到新的foo_sub(arg1),您只需注释掉您的自定义代码并添加对foo_sub(arg1) 的调用。这远非理想,但它可能会有所帮助。

    【讨论】:

    • 是的,恐怕你和我是对的。 Excel 无法以这种方式处理它,因为我没有使用对象来创建此功能,因此没有像谁是谁的父级这样的层次结构,然后对调用进行优先级排序。我无法创建包装函数,因为工作中的其他人可能需要我自己的加载项才能重新打开文件并获得相同的结果,在这种情况下我最好选择只传递我的加载项或改进每个人都拥有的当前! :/ hehe 感谢您花时间了解我的问题。
    【解决方案2】:

    这可能会有所帮助:Function Overloading and UDF in Excel VBA

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      相关资源
      最近更新 更多