类字符串数组属性无法读取

时间:2015-06-04 11:06:08

标签: vba excel-vba excel

我正在使用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

2 个答案:

答案 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