Я хочу создать сводную таблицу с несколькими строковыми полями. Хотя эти строчные поля необходимо изменить в соответствии с данными, введенными в таблицу Excel.
Я попытался установить переменные и использовать команды «with» и «for», например, в следующем коде.
Option Explicit
Private Sub PivotTable()
Dim Wsheet As Worksheet, Wsheet2 As Worksheet
Dim File As Workbook
Dim PvtCache As PivotCache
Dim Pvtbl As PivotTable
Dim RLast As Double
Dim i As Variant, X As Variant
Set File = ThisWorkbook
Set Wsheet = Sheets("Data")
'Create sheet for pivot table
Set Wsheet2 = Sheets.Add(After:=Wsheet)
Wsheet2.Name = "PivotTable"
Set PvtCache = File.PivotCaches.Create(SourceType:=xlDatWsheetse, SourceData:=Wsheet.Range("A1:D45"))
Set Pvtbl = Wsheet2.PivotTables.Add(PivotCache:=PvtCache, TableDestination:=Wsheet2.Range("A3"), TableName:="Manual_Bordo")
With Pvtbl
'setting rows fields
Set Wsheet = Sheets("Data")
RLast = Wsheet.Cells(Rows.Count, "F").End(xlUp).Row 'Type the row fields in column "F".
For i = 1 To RLast
Set X = Wsheet.Range("F" & i)
With .PivotFields(X) 'Here i get the error 1004
.Orientation = xlRowField
.Position = i
End With
Next
'setting pivot Data
With .PivotFields("Size")
.Orientation = xlDataField
.Position = i
.Function = xlSum
.NumberFormat = "#.##0,0"
.Name = "Size"
End With
Next
End With
Application.DisplayAlerts = True
End Sub
Но вместо этого я получаю сообщение об ошибке 1004: не удается получить свойство pivotfields класса сводной таблицы (извините, если это не имеет смысла, но мне пришлось перевести диалоговое окно).