VBA类中的数组属性

时间:2014-06-23 13:25:43

标签: vba

我尝试编写一个数组属性并运行我的代码我总是得到一个我无法分配给写保护属性的错误。

我的代码:

Private pQ(9) As String

Public Property Get Q() As String()
    Q() = pQ()
End Property
Public Property Let Q(value() As String())
    pQ() = value()
End Property

我认为这是因为括号所以我尝试了所有组合,但它没有奏效。有谁可以帮助我吗?

这是我收到错误的地方:

For j = 0 To 9
.Q(j) = ThisWorkbook.Worksheets("xx").Cells(3, j + 1)
Next j

1 个答案:

答案 0 :(得分:1)

您不能在属性对中使用数组。

如果可以,您的示例将传递后备阵列的新副本,这些副本效率不高。

您只需要传递索引和值,然后使用这些来读取和写入内部数组:

Public Property Get Q(index As integer) As String
    Q = pQ(index)
End Property

Public Property Let Q(index As integer, value As String)
    pQ(index) = value
End Property