我正在使用Excel 2013。
我有一个名为clsFund的课程。它有一个名为CompanyNames的string()属性。
private pCoName() as string
Public Property Get CompanyNames() As String()
CompanyNames = pCoName
End Property
在标准模块中,我尝试检索此字符串数组,但没有任何运气。我有下面的代码。有趣的是ubound告诉我10的正确答案,但它不喜欢clsData.PnL下面的行,该方法只是期待一个字符串参数我相信我提供但是我得到一个编译错误:错误的数量参数或无效的属性赋值 - 我不明白?
Private Sub PrintCompanyNameAndPnL()
Dim i As Integer
For i = 1 To UBound(Fund.BloombergIndices)
Range("A" & i) = clsData.PnL(Fund.CompanyNames(i))
Next i
End Sub
答案 0 :(得分:1)
如果以这种方式编写,则将i
作为参数传递给CompanyNames
属性,该属性不接受任何参数。
您需要访问这样的数组项:
Range("A" & i) = clsData.PnL(Fund.CompanyNames()(i))
所以你要返回数组,然后将i
作为索引传递给它。
答案 1 :(得分:1)
你返回一个完整的数组,所以你需要一组额外的parens来解决这些元素:
Range("A" & i) = clsData.PnL(Fund.CompanyNames()(i))
或改为
Public Property Get CompanyName(index As Integer) As String
CompanyName = pCoName(index)
End Property