Итак, я вижу несколько проблем, которые вызывают это. Во-первых, для ссылки на сводную таблицу на листе вам нужно .pivottables()
, а не .pt()
.
Затем, установив для массива значение из такого диапазона, вы получите двумерный массив, поэтому вам нужно перебрать его в двух измерениях, чтобы получить все значения. Я добавил вложенный цикл, используя второй итератор, j:
Public Sub ReadToArray()
Dim pt As PivotTable
Dim rg As Range
Set pt = Worksheets("Sheet4").PivotTables("PivotTable1")
Set rg = pt.DataBodyRange
Dim Done As Variant
Done = rg.Value
Debug.Print "i", "Value"
Dim i As Long, j As Long
For i = LBound(Done, 1) To UBound(Done, 1)
For j = LBound(Done, 2) To UBound(Done, 2)
Debug.Print i & ", " & j & ", " & Done(i, j)
Next j
Next i
End Sub