在VBA中实现接口的类模块中添加方法

3
我为Microsoft Excel 2010编写了一个VBA宏。
我项目中的一些模块实在需要子类,但我已经知道继承是不被支持的。
因此,我选择了更困难的方式,并在每个模块中使用接口再次实现了所有方法。
然而,现在我遇到了一个问题:只有一个模块中出现的方法(但不在接口中)抛出了异常:
“找不到方法或数据成员!”
我不太确定,但我有一种感觉这与接口有关。
因此,我想了解以下内容:
  • 在VBA模块中实现接口时,是否仍然可以编写额外的公共子程序?
  • 如果不可能,那么向实现接口的模块附加某些功能的正确模式是什么?

3
如果你将一个变量声明为接口类,那么你只能调用该接口中定义的方法和属性。 - Rory
你是指静态绑定,对吧?但是我声明的变量是“真实类”,而不是接口类...那么它应该可以工作吗? - speendo
2
是的,应该可以。除非您发布代码,否则我们无法告诉您为什么不行。 - Rory
当然,我猜没有人想读整个代码。当你告诉我它应该工作时,我会尝试制作一个最小的示例。 - speendo
@Rory 谢谢你的评论!知道它应该可以工作,我自己找到了问题的源头(你是对的,这是一个变量声明的问题)。由于你的评论全面回答了我的问题,我想接受它。你想把它转化成一个答案吗? - speendo
1个回答

3
如果您将变量声明为接口类,则只能调用该接口的方法/属性,而不管实际对象类型本身公开的任何其他方法/属性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接