配列の配列を作成する関数が 1 つと、結果の配列を取得してスプレッドシートに書き込む関数が 1 つあります。配列の配列を 2 番目の関数に渡すための構文が見つかりません...助けていただけますか?
たとえば、arr1 と arr2 にそれぞれ 24 個のアイテムが含まれている場合 (常に同じ量のアイテムが含まれている)、結果の配列をサイズ 24 x 2 の 2 次元配列にし、結果の 2 x 24 テーブルに書き込む必要があります。スプレッドシート、たとえば範囲 A1:B24
これが私のコードです:
配列の配列を作成する関数:
Function GetCellDetails(dict1 As Dictionary, dict2 As Dictionary) As Variant
Dim arr1, arr2
arr1 = dict1.Items
arr2 = dict2.Items
GetCellDetails = Array(arr1, arr2)
End Function
それをスプレッドシートに書き込む関数:
Sub WriteCellDataToMemory(arr As Variant, day As Integer, cellId As Integer, nCells As Integer)
row = CellIdToMemRow(cellId, nCells)
col = DayToMemCol(day)
arrSize = UBound(arr, 2) 'compiler error
Range(Cells(row, col), Cells(row + arrSize , col + 2)) = Application.Transpose(arr)
End Sub
関数を呼び出すコード:
Dim CellDetails
CellDetails = GetCellDetails(dict1, dict2)
WriteCellDataToMemory CellDetails, day, cellId, nCells
でコンパイラ エラーが発生しています:
arrSize = UBound(arr, 2)
、コンパイラは arr が 2 次元配列であることを認識していないためです... ありがとう、Li