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

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

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

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

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

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

Код макроса

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. Применяем ограничения.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий