Что нового

Создание сводной таблицы в Экселе

BaRsupillamy

Новичок
Сообщения
58
Репутация
0
Получаем данные из базы. Надо вставить в эксель, создать сводную таблицу. Вот код, полученный при записи макроса:
Код:
Sub Макрос2()
    Range("A1:B13").Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Лист1!R1C1:R13C2", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Лист1!R4C5", TableName:="СводнаяТаблица", _
        DefaultVersion:=xlPivotTableVersion14
    Sheets("Лист1").Select
    Cells(4, 5).Select
    With ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Фамилия")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Фамилия").Orientation _
        = xlHidden
    With ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Фамилия")
        .PivotItems("Малахов").Visible = False
        .PivotItems("Сидоров").Visible = False
    End With
    With ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Фамилия")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("СводнаяТаблица").AddDataField ActiveSheet.PivotTables _
        ("СводнаяТаблица").PivotFields("Кол-ва"), "Сумма по полю Кол-ва", xlSum
    Range("G14").Select
End Sub
Кто нибудь может помочь перевести его на автоит?
Надо именно автоитом, потому что потом данные методы будут применяться в других случаях.
Огромное спасибо за помощь :smile:

P.S. Это код для таблицы в экселе, из которой я пытался сделать сводную таблицу. Останавливаюсь на том, как передать параметры, где есть присовение через ":="
Код:
#include <Excel.au3>

$oExcel = _ExcelBookNew(0) ; Создаём новую рабочюю книгу Excel

Local $aArray1[11] = ["Фамилия", "Иванов", "Петров", "Сидоров", "Шварц", "Иванов", "Сидоров", "Шварц", "Иванов", "Шварц", "Иванов"]
Local $aArray2[11] = ["Количество", 11, 10, 9, 8, 7, 6, 5 ,4 ,3 ,2]

_ExcelWriteArray($oExcel, 1, 1, $aArray1, 1)
_ExcelWriteArray($oExcel, 1, 2, $aArray2, 1)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
#include <Excel.au3>
Global $xlDatabase = 1
Global $xlPivotTableVersion14 = 4

$oExcel = _ExcelBookNew(1) ; Создаём новую рабочюю книгу Excel
Local $aArray1[11] = ["Фамилия", "Иванов", "Петров", "Сидоров", "Шварц", "Иванов", "Сидоров", "Шварц", "Иванов", "Шварц", "Иванов"]
Local $aArray2[11] = ["Количество", 11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
_ExcelWriteArray($oExcel, 1, 1, $aArray1, 1)
_ExcelWriteArray($oExcel, 1, 2, $aArray2, 1)
Makpoc2($oExcel)
Func Makpoc2($oExcel)
	$oExcel.Range("A1:B13").Select
	$oPivotCache = $oExcel.ActiveWorkbook.PivotCaches.Create($xlDatabase ,"Лист1!R1C1:R13C2",$xlPivotTableVersion14)
	$oPivotCache.CreatePivotTable("Лист1!R4C5",'СводнаяТаблица',$xlPivotTableVersion14)
	;И так далее
EndFunc   ;==>Makpoc2

Дальше делайте по аналогии, должно получится
 
Верх