问题 在VBA中实现我自己的接口 - 错误:对象模块需要为接口'y'实现'x'


我如何实现我的课程 ClsInterface,有这个代码:

Public Function add(x As Integer, y As Integer) As Integer
End Function

在我班上 Class2,有这个代码:

Implements ClsInterface

Public Function add(x As Integer, y As Integer) As Integer
add = x + y
End Function

我的测试代码是

Public Sub test()
Dim obj As New Class2
MsgBox obj.add(5, 2)
End Sub

这总是会出现以下错误:

Microsoft Visual Basic
  编译错误:

对象模块需要为接口'ClsInterface'实现'add'
  OK /帮助

但是在Microsoft帮助上没有帮助(当我按下“帮助”按钮时)。

有任何想法吗?


1326
2017-07-03 11:20


起源

这里的 如何在Excel VBA中使用Implements


答案:


你的Class2看起来像;

Implements ClsInterface

Private Function ClsInterface_add(x As Integer, y As Integer) As Integer
add = x + y
End Function

(查看Class2代码窗口顶部的下拉框,可以看到可以引用的基础对象; Class或ClsInterface)

在你想要的测试代码中;

Dim obj As New ClsInterface

如果要通过界面调用。

(我还建议以ISomeDescription的形式命名接口并使用Set而不是As New)


13
2017-07-03 11:33



谢谢,我按照你的指示工作没有任何错误,但价值总是0!虽然它应该是7,任何想法? - amr osama
在你的私人函数ClsInterface_add ...你需要'返回x + y'而不是'add = x + y',否则永远不会返回x + y的值。 - Stewbob
你需要返回使用; ClsInterface_add = x + y - Alex K.
这不是使用它将clsinterface替换为class2的接口
我只是看了一个多小时如何在VB6中自动实现一个该死的COM接口,直到我发现你的下拉框提示。感谢那。 - Lennart