powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос для создания Pivot Table
2 сообщений из 2, страница 1 из 1
Макрос для создания Pivot Table
    #37789200
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На VBA никогда не писал, но возникла задача, надо на основании таблицы excel создавать pivot table. Делать это каждый раз руками замучился. Решил последовательность своих действий записать в макрос (View/Record macros). Макрос успешно записался. НО ниже его код. Но везде проставлены константы, которые видимо не позволяют мне использовать этот макрос повторно. Подскажите, как их заменить на переменные, чтобы каждый раз когда я запускаю макрос - у меня создавался в отдельном листе данной книги pivot table на основании таблицы, в другом листе, которая обновляется автоматически.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
Sub Macro3()
'
' Macro3 Macro
'

'
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Âõîäÿùèå_îò÷åòíûé ïåðèîä!R1C1:R736C22", Version:=xlPivotTableVersion1). _
        CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="PivotTable8" _
        , DefaultVersion:=xlPivotTableVersion1 /* Проблема возникает здесь */
    Sheets("Sheet11").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Calls")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable8").AddDataField ActiveSheet.PivotTables( _
        "PivotTable8").PivotFields("Calls2"), "Count of Calls2", xlCount
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ãîä")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ìåñÿö")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ïðåïàðàò")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Êàòåãîðèÿ àáîíåíòà")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Äèàãíîç")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ïîë")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Âîçðàñò")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Òèï çâîíêà")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Òèï âîïðîñà")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Òèï ÍËÐ")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("KIT 1")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("KIT 2")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("KIT 3")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable8").AddDataField ActiveSheet.PivotTables( _
        "PivotTable8").PivotFields("Êîëè÷åñòâî çàêàçàíûõ KIT-îâ"), _
        "Sum of Êîëè÷åñòâî çàêàçàíûõ KIT-îâ", xlSum
    With ActiveSheet.PivotTables("PivotTable8").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ãîðîä èç Îïòèìû")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ãîðîä ïî Òàáëèöå 1")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ðåãèîí")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Äèñòðèêò ìåíåäæåð")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Ðåãèîíàëüíûé ìåíåäæåð" _
        )
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Èìÿ ïàöèåíòà")
        .Orientation = xlPageField
        .Position = 1
    End With
    Range("B24").Select
    ActiveSheet.PivotTables("PivotTable8").PivotFields("Ãîðîä ïî Òàáëèöå 1"). _
        AutoSort xlDescending, "Count of Calls2", ActiveSheet.PivotTables("PivotTable8" _
        ).PivotColumnAxis.PivotLines(1), 1
    Sheets("Âõîäÿùèå_îò÷åòíûé ïåðèîä").Select
End Sub
...
Рейтинг: 0 / 0
Макрос для создания Pivot Table
    #37789359
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rus_sun,

http://www.ozgrid.com/forum/showthread.php?t=160366

здесь решение проблемы.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос для создания Pivot Table
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]