MyTetra Share
Делитесь знаниями!
Как применить ограничения сводного поля
Время создания: 12.10.2019 20:26
Раздел: !Закладки - VBA - Excel - Сводные

Как применить ограничения сводного поля

Автор Дмитрий Якушев На чтение3 мин. Просмотров36

Что делает макрос: Макрос, описанный в этом разделе, демонстрирует некоторые параметры, дающие возможность применить ограничения сводного поля, доступные через VBA.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

Объект PivotTable предоставляет несколько свойств, которые позволят ограничить различные функции и компоненты сводной таблицы.

  • DragToPage: Установка этого свойства в False предотвращает перетаскивание пользователем любого поля в область фильтра отчетов сводной таблицы.
  • DragToRow: Установка этого свойства в False предотвращает перетаскивание пользователем любого поля в области строк сводной таблицы.
  • DragToColumn: Установка этого свойства в False предотвращает перетаскивание пользователем любого поля в области столбцов сводной таблицы.
  • DragToData: Установка этого свойства в False предотвращает перетаскивание пользователем любого поля в область данных сводной таблицы.
  • DragToHide: Установка этого свойства в значение False предотвращает перетаскивание пользователем любого поля сводной таблицы. Оно также предотвращает использование контекстного меню, чтобы скрыть или удалить поля сводной.
  • EnableItemSelection: Установка этого свойства в значение false отключает раскрывающиеся списки на каждом поле сводной таблицы

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

Код макроса


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sub PrimenitOgranicheniyaSvodnogoPolya()

'Шаг 1: Объявляем переменные

Dim pt As PivotTable

Dim pf As PivotField

'Шаг 2: Курсор на активной ячейке в сводной таблице

On Error Resume Next

Set pt = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)

'Шаг 3: Выход, если активная ячейка не в сводной таблице

If pt Is Nothing Then

MsgBox "Вы должны поместить курсор в сводную таблицу."

Exit Sub

End If

'Шаг 4: Применить ограничения поля сводной

For Each pf In pt.PivotFields

pf.EnableItemSelection = False

pf.DragToPage = False

pf.DragToRow = False

pf.DragToColumn = False

pf.DragToData = False

pf.DragToHide = False

Next pf

End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные объекта, используя Pt в качестве контейнера памяти для сводной таблицы и Pf в качестве контейнера для памяти наших полей данных. Это
    позволяет макросe перебрать все поля данных в сводной таблице.
  2. На шаге 2 мы устанавливаем переменную Pt на имя сводной таблицы, на которой найдена активная ячейка. Мы делаем это, используя свойство ActiveCell.PivotTable.Name, чтобы
    получить имя целевой сводной.
  3. Шаг 3 проверяет, заполнена ли переменная PT сводной таблицы объекта.
  4. Применяем ограничения.
Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования