Collection
を作成し、内部にCollection
を追加するサブアイテムがあります。ループの最初のコレクションを追加するときしかし、私はWrong number of arguments or invalid property assignment
エラーを取得する:Collection.Add:引数の数が正しくないか、プロパティの割り当てが無効です
Sub testState()
Dim stateCopy As State
Set stateCopy = New State
stateCopy.setStateName="some name"
stateCopy.storeBudgetWorkbooks
stateCopy.storeBudgetDatas 'error on this line
End Sub
Sub storeBudgetDatas() 'inside a class named State
...
Dim year As Integer
Dim i As Integer
i = 1
For year = 2014 To 2017
Set budgetWorkbook =
ExcelApp.Application.Workbooks.Open(budgetWorkbooks(i))
MsgBox ("still here") 'this message appears
allBudgetItems.Add getBudgetData(budgetWorkbook, year) 'this line is likely to cause problems
MsgBox ("and here") 'this message doesn't appear
budgetWorkbook.Close
i = i + 1
Next
End Sub
Function getBudgetData(budgetWorkbook As Workbook, year As Integer)
...
Dim budgetItems As Collection
Set budgetItems = getBudgetItems(year)
... 'setting attributes
getBudgetData = budgetItems(year)
End Function
Function getBudgetItems(year As Integer)
...
Dim resultCollection As Collection
Set resultCollection = New Collection
Dim itemCopy As Item
Dim i As Integer
For i = LBound(budgetItemNames) To UBound(budgetItemNames)
Set itemCopy = New Item
... 'setting attributes
resultCollection.Add itemCopy
Next
Set getBudgetItems = resultCollection
End Function
私はここで間違っているかわからないんだけど。 getBudgetItems
はコレクションを返します。 getBudgetData
はコレクションも返します。私は括弧を追加/削除しようとしましたが、役に立たなかった。
あなたが助けを見つけることができますので、あなたのコードは、完全ではありません少ない来る。 Sub storeBudgetWorkbooksがなくなり、allBudgetItemsが明白な問題であるように淡色表示されています... – Tragamor
実際の問題行を見つけるために、f8を使用してクラスコードに入りましたか(またはクラスモジュールでブレークするようにVBEを設定しましたか? – Rory
@Rory、これはどういう意味ですか?私はどのように実際の問題を見つけるかわからない、それは単に関数内の特定の行ではなく、関数呼び出しの行を強調表示します。 – Ans