我正在尝试从数据透视表中获取数据,在VBA的Array中使用它,然后进行打印。我是VBA的新手,并且看过一些教程,但实际上我收不到。
我尝试用“ DataBodyRange”引用列的范围,但是我总是遇到不同的错误。 “ Sheet4”是我的“ PivotTable1”所在的工作表。我需要一列中的所有数据。
Public Sub ReadToArray()
'Range
Dim rg As Range
Set rg = Worksheets("Sheet4").pt("PivotTable1").DataBodyRange
'Dynamic Array
Dim Done As Variant
Done = rg.Value
'Array Values
Debug.Print "i", "Value"
Dim i As Long
For i = LBound(Done) To UBound(Done)
Debug.Print i, Done(i)
Next i
End Sub
最终结果是我要打印出整个列的值,然后再使用它们。
答案 0 :(得分:1)
所以我可以看到导致此问题的一些问题。首先,要引用工作表中的数据透视表,您需要.pivottables()
而不是.pt()
。
接下来,将数组设置为具有这样范围内的值将为您提供2D数组,因此您需要在二维中循环遍历它以获取所有值。我使用第二个迭代器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