2015-06-04 11 views
1

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

末次

回答

1

如果你寫這樣的說法,你是路過i作爲參數傳遞給CompanyNames屬性,它不接受任何參數。

您需要訪問這樣的數組項:

Range("A" & i) = clsData.PnL(Fund.CompanyNames()(i)) 

所以你返回數組,然後通過i作爲索引到。

1

將返回一個完整的數組,所以你需要一組額外的括號,解決要素:

Range("A" & i) = clsData.PnL(Fund.CompanyNames()(i)) 

或更改

Public Property Get CompanyName(index As Integer) As String 
    CompanyName = pCoName(index) 
End Property