Excel Vba错误:同一属性的属性过程的定义不一致

3 excel vba properties custom-object

这一定是显而易见的事情,但我被困住了,所以也许你们可以帮助我。

考虑 VBA 自定义对象中的以下代码:

Private pSkipTrade As Boolean
Property Let SkipTrade(value As Double):
    If value = 0 Then
        pSkipTrade = False
    Else
        pSkipTrade = True
    End If
End Property

Public Property Get SkipTrade() As Boolean
    SkipTrade = pSkipTrade
End Property
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

提前谢谢!

rid*_*ill 7

Let 参数必须与 Get 属性的返回类型匹配。看到这个

所以需要将Property Let中的参数改为Boolean类型:

Private pSkipTrade As Boolean
Property Let SkipTrade(value As Boolean) '<--Parameter is Boolean type
   pSkipTrade = value 
End Property

Public Property Get SkipTrade() As Boolean
    SkipTrade = pSkipTrade
End Property
Run Code Online (Sandbox Code Playgroud)

然后将 Let 属性中的逻辑移动到使用该属性的代码中:

If price = 0 Then
    SkipTrade = False
Else
    SkipTrade = True
End If
Run Code Online (Sandbox Code Playgroud)