自定义类声明 - 属性过程的定义

时间:2015-12-01 14:52:43

标签: class excel-vba vba excel

我得到的是我只能假设this error(错误消息在Excel中更长,但在其他方面与MSDN上描述的问题相对应)在以下代码中,我不明白为什么

use RedBeanPHP\R;

它强调了这个特定的Private cLocation As String ' Location Public Property Get Location() As String Location = cLocation End Property Public Property Let Location(Value As String, Value1 As String) If Value <> "" And Len(Value) > 2 Then cLocation = Value Else cLocation = Value1 End If cLocation = Test.scrubLocation(cLocation, Me.NewZipcode) End Property 程序。

  

Property Get过程的参数数量不少一个   比匹配Property Let或的参数个数   属性集程序。向Property Let或Property添加参数   根据需要在Property Get中设置或删除参数。

我认为这不可能 - Let的参数比Get少2。此外,向Let添加参数不会解决任何问题。

  

属性Get的参数类型必须与   Property Let或Property Set的相应参数,除了   额外的Property Set参数。修改参数声明   相应的程序定义,因此它们是适当的   匹配。

     

Property Let的额外参数的参数类型必须   匹配相应的Property Get过程的返回类型。   修改Property Let或中的额外参数声明   相应属性Get的返回类型是这样的   适当匹配。

一切都是字符串,所以这也应该没问题?

  

您使用Optional或ParamArray定义了一个Property过程   参数。 ParamArray和可选参数不允许使用   物业程序。不使用这些程序重新定义程序   关键字。

不。

我还确保我没有在其他任何地方设置Get。在整个项目中,没有其他程序对cLocation进行修改而不是cLocation,如上所示。

我在做Let错了吗?我的印象是我可以从this answer以这种方式完成。

1 个答案:

答案 0 :(得分:1)

您的Get过程也必须具有名为Value的String参数:

Public Property Get Location(Value As String) As String
    Location = cLocation
End Property