Я делаю макрос vba, который создает лист в рабочей книге, а затем создает сводную таблицу, используя данные из другого листа, и использует массив строк для задания полей для этой сводной таблицы. Тем не менее, я не могу найти способ для полей использовать массив строк. любая помощь будет высоко ценится.
Sub view()
Application.ScreenUpdating = False
On Error Resume Next
Dim field(1 To 15) As String
Dim i As Long
Dim lastrow As Long
Dim lastcol As Long
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
field(1) = "Country Name"
field(2) = "Category Name"
field(3) = "Status"
field(4) = "Type Name"
field(5) = "Subtype Name"
field(6) = "Subtype Code"
field(7) = "Assign Dept Name"
field(8) = "Creation Date2"
field(9) = "Closed Date2"
field(10) = "Channel Name"
field(11) = "Type Inquiry"
field(12) = "Status2"
field(13) = "Equal Month"
field(14) = "Days"
field(15) = "Bracket"
Application.DisplayAlerts = False
Worksheets("View").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "View"
Application.DisplayAlerts = True
ActiveWorkbook.Worksheets("Recurrence").PivotTables("PivotTable1").PivotCache. _
CreatePivotTable TableDestination:="View!R1C1", TableName:="PivotTable4", _
DefaultVersion:=6
Sheets("View").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("PivotTable4").PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsDefault
End With
For i = 1 To 15
ActiveSheet.PivotTables("PivotTable4").RepeatAllLabels xlRepeatLabels
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("PivotTable4").PivotFields("field(i)")
.Orientation = xlRowField
.Position = i
.LayoutForm = xlTabular
.RepeatLabels = True
End With
ActiveSheet.PivotTables("PivotTable4").PivotFields("field (i)").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
Next
ActiveSheet.PivotTables("PivotTable4").AddDataField ActiveSheet.PivotTables( _
"PivotTable4").PivotFields("Value"), "Sum of Value", xlSum
End Sub