Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
26
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Ответы к 19-му часу Тесты

  1. Истинно или ложно следующее утверждение: сводную таблицу можно создать только на основе данных, которые записаны на рабочем листе Excel?

Ложно. Сводную таблицу можно создать на основе данных из разных источников, включая внешние базы данных и другие сводные таблицы.

  1. Назовите имена двух коллекций, которые необходимы для создания сводных таблиц.

Коллекция PivotCaches и коллекция PivotTables.

  1. Какое свойство объекта PivotField назначает поля данных областям сводной таблицы (т.е. областям страницы, строк, столбцов и данных)?

Свойство Orientation.

  1. Истинно или ложно следующее утверждение: в область Строка сводной таблицы можно поместить только одно поле данных?

Ложно. Во все области сводной таблицы можно помещать по несколько полей.

  1. Назовите четыре области сводной таблицы.

Области сводной таблицы следующие: Страница, Строка. Столбец и Данные.

  1. Какой метод создает отчет сводной таблицы?

Метод CreatePivotTable.

  1. Истинно или ложно следующее утверждение: для создания сводной таблицы можно записать соответствующий макрос?

Истинно. Запись макроса - простой путь написания процедуры, создающей сводную таблицу.

Упражнение

В таблицу данных, показанную на рис. 19.1, добавьте еще одно поле Изделия, где будут представлены изделия, составляющие категорию товара (рис. 19.7). Начните запись макроса, который на основе этой таблицы данных будет создавать сводную таблицу. При создании сводной таблицы руководствуйтесь рис. 19.8. Остановите запись макроса. Измените код макроса так, чтобы из рабочей книги были удалены все рабочие листы, кроме листа Данные, и сводной таблице задавалось имя Анализ_продаж.

Полный код процедур:

Sub СоздСводТабл()

 Dim x As Worksheet

 Application.DisplayAlerts = False

 For Each x In Worksheets

  If x.Name<>"Данные" Then

   x.Delete

  End If

 Next x

 Application.DisplayAlerts = True

 'В следующем операторе обратите внимание на задание диапазона

 'данных R1C1:R145C5 - у вас он может быть другим.

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

  SourceData:="Данные!R1C1:R145C5").CreatePivotTable _

  TableDestination: = "", TableName: = "Анализ_продаж"

 ActiveSheet.PivotTableWizard TableDestination:= _

  ActiveSheet.Cells(3, 1)

 ActiveSheet.Cells(3, 1).Select

 ActiveSheet.PivotTables("Анализ_продаж").SmallGrid = False

 With ActiveSheet.PivotTables("Анализ_продаж").PivotFields("Год")

  .Orientation = xlPageField

  .Position = 1

 End With

 With ActiveSheet.PivotTables("Анализ_продаж"). _

  PivotFields("Район")

  .Orientation = xlColumnField

  .Position = 1

 End With

 With ActiveSheet.PivotTables("Анализ_продаж"). _

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

  .Orientation = xlColumnField

  .Position = 2

 End With

 With ActiveSheet.PivotTables("Анализ_продаж"). _

  PivotFields("Изделие")

  .Orientation = xlRowField

  .Position = 1

 End With

 With ActiveSheet.PivotTables("Анализ продаж"). _

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

  .Orientation = xlDataField

  .Position = 1

 End With

End Sub