русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Исследование кода макроса


Дата добавления: 2015-07-23; просмотров: 882; Нарушение авторских прав


Перейдите в редактор Visual Basic и в окне проектов найдите текущую книгу. Откройте папку Modules и затем Module1 - вы увидите код макроса в виде процедуры МояСводнаяТаблица (если такое имя вы дали своему макросу). Полный код этой процедуры приведен в листинге 19.1.

Листинг 19.1. Процедура МояСводнаяТаблица

l:Sub МояСводнаяТаблица()

2: ActiveWorkbook.PivotCaches.Add(SourceType:=xlDataBase, _

3: SourceData:= "Лист1!R1C1:R37C4").CreatePivotTable _

TableDestination:="", TableName:"= "СводнаяТаблица1"

4: ActiveSheet.PivotTableWizard _

5: TableDestination:=ActiveSheet.Cells(3,1)

6: ActiveSheet.Cells(3,1).Select

7: ActiveSheet.PivotTables("СводнаяТаблица1").SmallGrid = False

8: With ActiveSheet.PivotTables("СводнаяТаблица1"). _

PivotFields("Год")

9: .Orientation = xlPageField

10: .Position = 1

11: End With

12: With ActiveSheet.PivotTables("СводнаяТаблица1"). _

PivotFields("Район")

13: .Orientation = xlRowField

14: .Position = 1

15: End With

16: With ActiveSheet.PivotTables("СводнаяТаблица1"). _

PivotFields("Категория товара")

17: .Orientation = xlColumnField

18: .Position = 1

19: End With

20: With ActiveSheet.PivotTables("СводнаяТаблица1"]. _

PivotFields("Объем продаж")

21: .Orientation = xlDataField

22: .Position = 1

23: End With

24:End Sub

Первый оператор в этой процедуре выполняет метод Add (Добавить) применительно к коллекции PivotCaches (Основные кэши). На самом деле в этом операторе выполняются два метода. В дополнение к метолу Add, создающему элемент коллекции PivotCaches, исполняется еще метод CreatePivotTable (Создать сводную таблицу), название которого говорит само за себя:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDataBase, SourceData:= _



"Лист1!R1C1:R37C4").CreatePivotTable TableDestination:="", _

TableName:= "СводнаяТаблица1"

Обратите внимание, что в методе CreatePivotTable аргумент TableDestination принимает значение пустой строки - для Excel это является указанием создать сводную таблицу на новом рабочем листе. После создания нового рабочего листа и сводной таблицы задается ряд свойств:

ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet. _

Cells(3, 1)

ActiveSheet.Cells(3,1).Select

ActiveSheet.PivotTables("СводнаяТаблица1").SmallGrid = False

Остальные операторы процедуры назначают областям сводной таблицы соответствующие поля данных.

With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Год"]

.Orientation = xlPageField

.Position = 1

End With

With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Район")

.Orientation = xlRowField

.Position = 1

End With

With ActiveSheet.PivotTables("СводнаяТаблица1"). _

PivotFields("Категория товара")

.Orientation = xlColumnField

.Position = 1

End With

With ActiveSheet.PivotTables("СводнаяТаблица1"). _

PivotFields"Объем продаж")

.Orientation = xlDataField

.Position = 1

End With

Если сейчас вы попытаетесь выполнить макрос еще раз, то получите сообщение об ошибке, так как сводная таблица с тем именем, которое указано в аргументе TableName (Имя таблицы), уже создана. Чтобы сделать процедуру более гибкой, внесите в ее код изменения, показанные в листинге 19.2 (измененные и новые операторы выделены полужирным шрифтом).

Листинг 19.2. Измененная процедура МояСводнаяТаблица

1:Sub МояСводнаяТаблица()

2: Dim ptSales As PivotTable

3:

4: Set ptSales = ActiveWorkbook.PivotCaches.Add _

(SourceType:=xlDataBase, SourceData:=

5: "Лист1!R1C1:R37C4").CreatePivotTable(TableDestination:="")

6: ActiveSheet.PivotTableWizard _

TableDestination:=ActiveSheet.Cells(3,1)

7: ActiveSheet.Cells(3,1).Select

8: ptSales.SmallGrid = False

9: With ptSales.PivotFields("Год")

10: .Orientation = xlPageField

11: .Position = 1

12: End With

13: With ptSales.PivotFields("Район")

14: .Orientation = xlRowField

15: .Position = 1

16: End With

17: With ptSales.PivotFields("Категория товара")

13: .Orientation = xlColumnField

19: .Position = 1

20: End With

21: With ptSales.PivotFields("Объем продаж")

22: .Orientation = xlDataField

23: .Position = 1

24: End With

25:End Sub

Теперь можно не беспокоиться об имени создаваемой сводной таблицы. Процедура будет выполняться столько раз, сколько необходимо.

Резюме

В этом часе вы познакомились со сводными таблицами, предназначенными для работы с большими массивами данных. Продолжая изучение языка VBA, мы сначала записали макрос, создающий сводные таблицы, а затем модифицировали его код.



<== предыдущая лекция | следующая лекция ==>
Запись макроса для создания сводной таблицы | Вопросы и ответы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.109 сек.