Option Explicit Sub CreatePivotTable() Dim PTcache As PivotCache Dim pt As PivotTable Application.ScreenUpdating = False ' Удаление существующего листа сводной таблицы On Error Resume Next Application.DisplayAlerts = False Sheets("Сводная таблица").Delete On Error GoTo 0 ' Создание кеэша сводной таблицы Set PTcache = ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=Range("A1").CurrentRegion.Address) ' Добавление нового листа Worksheets.Add ActiveSheet.Name = "Сводная таблица" ActiveWindow.DisplayGridlines = False ' Создание сводной таблицы на основе кеша Set pt = ActiveSheet.PivotTables.Add( _ PivotCache:=PTcache, _ TableDestination:=Range("A1"), _ TableName:="BudgetPivot") With pt ' Добавление полей .PivotFields("Категория").Orientation = xlPageField .PivotFields("Подразделение").Orientation = xlPageField .PivotFields("Отдел").Orientation = xlRowField .PivotFields("Месяц").Orientation = xlColumnField .PivotFields("План").Orientation = xlDataField .PivotFields("Факт").Orientation = xlDataField .DataPivotField.Orientation = xlRowField ' Добавление вычисляемого поля, подсчитывающего отклонение .CalculatedFields.Add "Отклонение", "=План-Факт" .PivotFields("Отклонение").Orientation = xlDataField ' Применение числового формата .DataBodyRange.NumberFormat = "0 000" ' Применение стиля .TableStyle2 = "PivotStyleMedium2" ' Скрытие заголовков полей .DisplayFieldCaptions = False ' Изменение заглавий .PivotFields("Сумма по полю План").Caption = " План" .PivotFields("Сумма по полю Факт").Caption = " Факт" .PivotFields("Сумма по полю Отклонение").Caption = " Отклонение" End With End Sub ExamplesRUS