问题! 我有一个我们在工作中创建的加载项,比如foo.xla,它有一个函数foo_sub(arg1)。
现在,我想改进foo_sub(arg1)行为的方式,但是要编辑原始的加载项代码,因为一旦更新它,我必须将我的代码从旧的加载项迁移到更新的加载项。
有没有办法可以在不同的加载项中编写foo_sub(arg1),比如fee.xla,这样每次我从工作表调用foo_sub时,得到的那个是我写的那个?
提前致谢
答案 0 :(得分:0)
答案 1 :(得分:0)
我在尝试overload a constructor in VBA in Excel时遇到了很多类似的问题。
但是,我认为你的问题有点不同。您不一定试图通过提供具有相同名称和不同参数的单独方法来重载该函数;您正在尝试添加具有完全相同名称,返回类型和参数的方法,并找出让Excel调用您的函数而不是加载项的方法。
我不是肯定的,但我不认为这在Excel VBA中是可行的。如果你试图调用一个在多个地方定义的函数,它会混淆并告诉你它不知道要调用哪一个。
您可以创建一个名为my_foo_sub(arg1)
的包装函数,其中包含自定义代码。然后,如果您需要在更新foo_sub(arg1)
文件时切换到新的.xla
,则可以注释掉自定义代码并添加对foo_sub(arg1)
的调用。这远非理想,但它可能会有所帮助。