将字符串数组分配给类属性

时间:2017-07-10 20:26:37

标签: vba excel-vba excel

我很难设置并正确调用String数组类属性。

当前类属性

Private pNames() As String

'pNames Properties
Public Property Get Names() As String
    Names() = pNames
End Property
Public Property Let Names(Names As String)
    pNames() = Names
End Property

当前编译错误

  

编译错误:预期数组

在下面一行,特别突出显示LBound

For Loop1 = LBound(EditCategories.Names) To UBound(EditCategories.Names)

如何将此属性正确注册为String数组?

我尝试过什么

Public Property Let Names()(Names As String)突出显示空括号和抛出:

  

Property Let或Property Set

所需的参数

Public Property Let Names(Names() As String)突出显示整行和抛出:

  

同一属性的属性过程的定义不一致,或者属性过程具有可选参数,ParamArray或无效的Set final参数

1 个答案:

答案 0 :(得分:3)

备用字段是{{#if settings.phone_number}} <strong>{{lang 'footer.call_us' phone_number=settings.phone_number}}</strong> <br><strong>{{lang 'footer.localc'}}</strong> {{/if}} 数组。类型化数组的VBA语法有点奇怪/不一致。

支持字段:

String

属性:

Private pNames() As String

注意Public Property Get Names() As String() parens - 在String()声明中是非法的 - 去图。

问题在于你无法分配到这样的数组,所以Private pNames访问器无法合法 - 这不会编译:

Property Let

欢迎来到VBA中键入数组的乐趣。只需将其公开为Public Property Let Names(ByRef values As String()) 并完成它:

Variant
Public Property Get Names() As Variant