VBE看到不明确的名字

时间:2015-03-18 18:09:58

标签: excel vba oop excel-vba

嗨所以我只是在学习VB对OOP的看法。在测试LetGet方法的工作方式时,我创建了这个虚拟类Class1,显然它无法编译,因为“检测到Ambigious名称:〜”,此错误VBE突出显示类2的第2行(一个将test_property声明为Integer)。

我不明白这是什么样的暧昧?

仅供参考我通过试图用Dim& Public这些方法都没有改变任何内容。

见下文Class1课程:

Option Explicit
Private testing_property As Integer

Public Property Let testing_property(new_value As Integer)
    MsgBox "Let Box"
    Let testing = new_value
End Property

Public Property Get testing_property(new_value As Integer) As Integer
    MsgBox "Get Box"
End Property

我使用以下测试Sub来调用它:

Sub Test()
    Dim test_Class As Class1
    Set test_Class = New Class1
    With test_Class
        .testing_property = "1"
        Debug.Print .testing_property
    End With
End Sub

1 个答案:

答案 0 :(得分:3)

您的私有属性变量和let和get公共过程属性的重复声明。您应该为变量命名

Private itesting_property As Integer

在获得之前,你也有了。您应该在编写之前指定一个值。此外,你的Get()不应该接受一个变量并且变暗为整数,你的Let()应该接受一个变量作为整数而不是变暗。

Public Property Get testing_property() As Integer
    MsgBox "Get Box"
    testing_property = itesting_property
End Property
Public Property Let testing_property(new_value As Integer)
    MsgBox "Let Box"
    itesting_property = new_value
End Property