Classe PivotField (Excel VBA)

A classe PivotField representa um campo em um relatório de tabela dinâmica.

Os principais procedimentos da classe PivotField são CalculatedFields.Add, AddPageItem e Delete

Set

Para usar uma variável de classe PivotField, ela primeiro precisa ser instanciada por exemplo

Dim pvtf as PivotField
Set pvtf = ActiveCell.PivotField

Os procedimentos a seguir podem ser usados ​​para definir variáveis ​​do tipo PivotField: PivotTable.CalculatedFields, CalculatedFields.Item, CalculatedFields.Add, PivotCell.DataField, PivotCell.PivotField, ChildField, ParentField, PropertyParentField, PivotFields.Item, PivotFilter.DataField, PivotFilter.PivotField, PivotFilter.MemberPropertyField, PivotItem.Parent, PivotItems.Parent, PivotTable.AddDataField, PivotTable.ColumnFields, PivotTable.DataFields, PivotTable.DataPivotField, PivotTable.HiddenFields, PivotTable.PageFields, PivotTable.RowFields, PivotTable.VisibleFields, Range.PivotField, CubeField.PivotFields, PivotTable.PivotFields, PivotTable.ColumnFields, PivotTable.DataFields, PivotTable.HiddenFields, PivotTable.PageFields, PivotTable.RowFields e PivotTable.VisibleFields

For Each

Aqui está um exemplo de processamento dos itens PivotField em uma coleção.

Dim pvtfCalculatedField As PivotField
For Each pvtfCalculatedField In Application.CalculatedFields()
	
Next pvtfCalculatedField

Temas

Alguns procedimentos nesta classe foram agrupados em temas e são descritos em páginas de tema separadas

Sort/Order with its procedures AutoSort, AutoSortCustomSubtotal, AutoSortField, AutoSortOrder, AutoSortPivotLine, DatabaseSort e PropertyOrder
Display/Show with its procedures DisplayAsCaption, DisplayAsTooltip, DisplayInReport, ShowAllItems, ShowDetail e ShowingInAxis
Formula with its procedures Formula e StandardFormula
Name with its procedures MemberPropertyCaption, SourceCaption, SourceName, SubtotalName e UseMemberPropertyAsCaption

Métodos

Estes são os principais métodos da classe PivotField

CalculatedFields.Add - Cria um novo campo calculado. Retorna um objeto PivotField.

Dim strName As String: strName = 
Dim strFormula As String: strFormula = 
Dim pvtf As PivotField
Set pvtf = ActiveCell.PivotTable.CalculatedFields.Add(Name:=strName, Formula:=strFormula)

AddPageItem - Adiciona outro item a um campo de página com vários itens.

Dim strItem As String: strItem =  "[Product].[All Products].[Food].[Eggs]"
ActiveCell.PivotField.AddPageItem Item:=strItem

Delete - Exclui o objeto.

ActiveCell.PivotField.Delete

Estes são os principais métodos da classe

CalculatedFields.Item - Retorna um único objeto de uma coleção.

AutoGroup - Para agrupar automaticamente os campos da tabela dinâmica em uma Tabela Dinâmica.

AutoShow - Exibe o número de itens superiores ou inferiores para um campo de coluna, página ou linha no relatório de tabela dinâmica especificado.

CalculatedItems - Retorna uma coleção CalculatedItems que representa todos os itens calculados no relatório de tabela dinâmica especificado. Somente leitura.

ClearAllFilters - Chamar este método exclui todos os filtros atualmente aplicados a PivotField. Isso inclui a exclusão de todos os filtros da coleção PivotFilters do PivotField e a remoção de qualquer filtragem manual também aplicada ao PivotField. Se o PivotField estiver na área Filtro de Relatório, o item selecionado será definido como o item padrão.

ClearLabelFilters - Este método exclui todos os filtros de rótulo ou todos os filtros de data na coleção PivotFilters do PivotField.

ClearManualFilter - Fornece uma maneira fácil de definir a propriedade Visible como true para todos os itens de um PivotField em tabelas dinâmicas e para esvaziar as coleções HiddenItemsList e coleções visibleitemslist em tabelas dinâmicas OLAP.

ClearValueFilters - Chamar este método exclui todos os filtros de valor na coleção PivotFilters do PivotField.

DrillTo - O método DrillTo oferece suporte à análise de um Campo Dinâmico especificado a partir de outro Campo Dinâmico.

PivotItems - Retorna um objeto que representa um único item de tabela dinâmica um objeto PivotItem ou uma coleção de todos os itens visíveis e ocultos (um objeto PivotItems ) no campo especificado. Somente leitura.

PivotFields.Item - Retorna um único objeto de uma coleção.

Propriedades

CalculatedFields.Count Retorna um valor Long que representa o número de objetos na coleção.

Dim lngCount As Long
lngCount = ActiveCell.PivotTable.CalculatedFields.Count

CalculatedFields.Parent Retorna o objeto pai do objeto especificado. Somente leitura.

Dim objParent As Object
Set objParent = ActiveCell.PivotTable.CalculatedFields.Parent

AllItemsVisible Usado para recuperar um valor booliano que indica se qualquer filtragem manual é aplicada ao PivotField. Somente leitura.

Dim booAllItemsVisible As Boolean
booAllItemsVisible = ActiveCell.PivotField.AllItemsVisible

AutoShowCount Retorna o número de itens superiores ou inferiores que são automaticamente mostrados no campo de tabela dinâmica especificado. Long somente leitura.

Dim lngAutoShowCount As Long
lngAutoShowCount = ActiveCell.PivotField.AutoShowCount

AutoShowField Retorna o nome do campo de dados usado para determinar os itens superiores ou inferiores que são automaticamente mostrados no campo de tabela dinâmica especificado. String somente leitura.

Dim strAutoShowField As String
strAutoShowField = ActiveCell.PivotField.AutoShowField

AutoShowRange Retorna a constante xlTop se os principais itens são mostrados automaticamente no campo de tabela dinâmica especificado; retorna xlBottom se os itens inferiores são mostrados. Long somente leitura.

Dim lngAutoShowRange As Long
lngAutoShowRange = ActiveCell.PivotField.AutoShowRange

AutoShowType Retorna a constante xlAutomatic se AutoApresentação estiver habilitada para o campo de tabela dinâmica especificado; retorna xlManual se AutoApresentação estiver desabilitada. Long somente leitura.

Dim lngAutoShowType As Long
lngAutoShowType = ActiveCell.PivotField.AutoShowType

BaseField Retorna ou define o campo base para um cálculo personalizado. Essa propriedade é válida somente para campos de dados. de leitura/gravação.

ActiveCell.PivotField.BaseField =

BaseItem Retorna ou define o item do campo base para um cálculo personalizado. Válido somente para campos de dados. de leitura/gravação.

ActiveCell.PivotField.BaseItem =

Calculation Retorna ou define um valor XlPivotFieldCalculation que representa o tipo de cálculo realizado pelo campo especificado. Esta propriedade é válida somente para campos de dados.

ActiveCell.PivotField.Calculation = xlDifferenceFrom

Caption Retorna um valor String que representa o texto do rótulo para o campo de tabela dinâmica.

ActiveCell.PivotField.Caption =

ChildField Retorna um objeto PivotField que representa o campo filho do campo especificado se o campo estiver agrupado e tiver um campo filho. Somente leitura.

Dim pvtfChildField As PivotField
Set pvtfChildField = ActiveCell.PivotField.ChildField

ChildItems Retorna um objeto que representa um único item de tabela dinâmica um objeto PivotItem ou uma coleção de todos os itens (um objeto PivotItems ) que são filhos de grupo no campo especificado ou filhos do item especificado. Somente leitura.

Dim pvtiChildItems As PivotItem
Set pvtiChildItems = ActiveCell.PivotField.ChildItems

CubeField Retorna o objeto cubefield a partir do qual o campo de tabela dinâmica especificado é descendente. Somente leitura.

Dim cbfCubeField As CubeField
Set cbfCubeField = ActiveCell.PivotField.CubeField

CurrentPage Retorna ou define a página sendo atualmente exibida para o campo de página válida somente para campos de página. A leitura/gravação PivotItem.

ActiveCell.PivotField.CurrentPage =

CurrentPageList Retorna ou define uma matriz de cadeia de caracteres que correspondem à lista de itens incluídos em um campo de página de um relatório de tabela dinâmica. de leitura/gravação.

ActiveCell.PivotField.CurrentPageList =

CurrentPageName Retorna ou define a página atualmente exibida do relatório de tabela dinâmica especificado. O nome da página é exibido no campo da página. Observe que essa propriedade funciona somente se a página atualmente exibida já existir. String de leitura/gravação.

ActiveCell.PivotField.CurrentPageName =

DataRange Retorna um objeto Range conforme mostrado na tabela a seguir. Somente leitura.

Dim rngDataRange As Range
Set rngDataRange = ActiveCell.PivotField.DataRange

DataType Retorna um valor XlPivotFieldDataType que representa o tipo de dados no campo de tabela dinâmica.

Dim xpfDataType As XlPivotFieldDataType
xpfDataType = ActiveCell.PivotField.DataType

DragToColumn True se o campo especificado puder ser arrastado para a posição de coluna. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.DragToColumn = True

DragToData True se o campo especificado puder ser arrastado para a posição de dados. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.DragToData = True

DragToHide True se o campo puder ser ocultado sendo arrastado para fora do relatório de tabela dinâmica. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.DragToHide = True

DragToPage True se o campo puder ser arrastado para a posição de página. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.DragToPage = True

DragToRow True se o campo puder ser arrastado para a posição de linha. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.DragToRow = True

DrilledDown True se o sinalizador para o campo ou item de tabela dinâmica especificado estiver definido como "esburacado" expandido ou visível. Boolean de leitura/gravação.

ActiveCell.PivotField.DrilledDown = True

EnableItemSelection Quando estiver definido como False, desativa a capacidade de usar o campo suspenso na interface do usuário. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.PivotField.EnableItemSelection = True

EnableMultiplePageItems Usado para especificar se as caixas de seleção estão presentes na lista suspensa filtro para campos na área de página. Boolean de leitura/gravação.

ActiveCell.PivotField.EnableMultiplePageItems = True

Function Retorna ou define a função usada para resumir o campo da tabela dinâmica somente para campos de dados. O XlConsolidationFunction de leitura/gravação.

ActiveCell.PivotField.Function = xlAverage

GroupLevel Retorna o posicionamento do campo especificado dentro de um grupo de campos se o campo for um membro de um conjunto agrupado de campos. Somente leitura.

Dim lngGroupLevel As Long
lngGroupLevel = ActiveCell.PivotField.GroupLevel

Hidden Propriedade usada para ocultar níveis individuais de uma hierarquia OLAP. Boolean de leitura/gravação.

ActiveCell.PivotField.Hidden = True

HiddenItems Retorna um objeto que representa um único item de tabela dinâmica oculto um objeto PivotItem ou uma coleção de todos os itens ocultos (um objeto PivotItems ) no campo especificado. Somente leitura.

Dim pvtiHiddenItems As PivotItem
Set pvtiHiddenItems = ActiveCell.PivotField.HiddenItems

HiddenItemsList Retorna ou definhe uma especificando uma matriz de cadeias de caracteres que são itens ocultos para um campo de tabela dinâmica. Leitura/gravação.

ActiveCell.PivotField.HiddenItemsList =

IncludeNewItemsInFilter Permite aos desenvolvedores especificar se itens excluídos ou incluídos deverão ser controlados quando a filtragem manual for aplicada ao PivotField. Boolean de leitura/gravação.

ActiveCell.PivotField.IncludeNewItemsInFilter = True

IsCalculated True se o item ou campo de tabela dinâmica for um item ou campo calculado. Boolean somente leitura.

Dim booIsCalculated As Boolean
booIsCalculated = ActiveCell.PivotField.IsCalculated

IsMemberProperty Retorna True quando a tabela dinâmica contiver propriedades de membro. Boolean somente leitura.

Dim booIsMemberProperty As Boolean
booIsMemberProperty = ActiveCell.PivotField.IsMemberProperty

LabelRange Retorna um objeto Range que representa a célula ou células que contém o rótulo do campo. Somente leitura.

Dim rngLabelRange As Range
Set rngLabelRange = ActiveCell.PivotField.LabelRange

LayoutBlankLine True se uma linha em branco for inserida após o campo de linha especificado em um relatório de tabela dinâmica. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.PivotField.LayoutBlankLine = True

LayoutCompactRow Especifica se um objeto PivotField será ou não compactado itens de vários PivotFields são exibidos em uma única coluna quando linhas forem selecionadas. Boolean de leitura/gravação.

ActiveCell.PivotField.LayoutCompactRow = True

LayoutForm Retorna ou define a forma como os itens de tabela dinâmica especificados são exibidos – no formato de tabela ou de estrutura de tópicos. Leitura/gravação XlLayoutFormType.

ActiveCell.PivotField.LayoutForm = xlOutline

LayoutPageBreak True se uma quebra de página for inserida após cada campo. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.PivotField.LayoutPageBreak = True

LayoutSubtotalLocation Retorna ou define a posição dos subtotais do campo de tabela dinâmica em relação ao campo especificado acima ou abaixo. Leitura/gravação XlSubtotalLocationType.

ActiveCell.PivotField.LayoutSubtotalLocation = xlAtBottom

MemoryUsed Retorna a quantidade de memória usada atualmente pelo objeto, em bytes. Long somente leitura.

Dim lngMemoryUsed As Long
lngMemoryUsed = ActiveCell.PivotField.MemoryUsed

Name Retorna ou define um valor String que representa o nome do objeto.

ActiveCell.PivotField.Name =

NumberFormat Retorna ou define um valor String que representa o código de formatação do objeto especificado.

ActiveCell.PivotField.NumberFormat =

Orientation Retorna ou define um valor XlPivotFieldOrientation que representa o local do campo no relatório de tabela dinâmica especificado.

ActiveCell.PivotField.Orientation = xlColumnField

Parent Retorna o objeto pai do objeto especificado. Somente leitura.

Dim objParent As Object
Set objParent = ActiveCell.PivotField.Parent

ParentField Retorna um objeto PivotField que representa o campo de tabela dinâmica que é o pai do grupo do objeto especificado. O campo deve ser agrupado e possuir um campo pai. Somente leitura.

Dim pvtfParentField As PivotField
Set pvtfParentField = ActiveCell.PivotField.ParentField

ParentItems Retorna um objeto que representa um único item de tabela dinâmica um objeto PivotItem ou uma coleção de todos os itens (um objeto PivotItems ) que são pais de grupo no campo especificado. O campo especificado precisa ser um pai de grupo de outro campo. Somente leitura.

Dim pvtiParentItems As PivotItem
Set pvtiParentItems = ActiveCell.PivotField.ParentItems

PivotFilters Retorna ou define a PivotFilters do objeto PivotField especificado. Somente leitura.

Dim pfsPivotFilters As PivotFilters
Set pfsPivotFilters = ActiveCell.PivotField.PivotFilters

Position Retorna ou define um valor que representa a posição do campo primeiro, segundo, terceiro e assim por diante entre todos os campos em sua orientação (linhas, colunas, páginas, dados).

ActiveCell.PivotField.Position =

PropertyParentField Retorna um objeto PivotField que representa o campo ao qual as propriedades desse campo pertencem.

Dim pvtfPropertyParentField As PivotField
Set pvtfPropertyParentField = ActiveCell.PivotField.PropertyParentField

RepeatLabels Retorna ou define se os rótulos de item são repetidos na Tabela Dinâmica do Campo Dinâmico especificado. Leitura/gravação.

ActiveCell.PivotField.RepeatLabels = True

ServerBased True se a fonte de dados para o relatório de tabela dinâmica especificado for externa e apenas os itens correspondentes à seleção de campo de página forem recuperados. Boolean de leitura/gravação.

ActiveCell.PivotField.ServerBased = True

Subtotals Retorna ou define subtotais exibidos com o campo especificado. Válida somente para campos que não são de dados. de leitura/gravação.

ActiveCell.PivotField.Subtotals = True

TotalLevels Retorna o número total de campos no grupo de campo atual. Se o campo não for agrupado ou se a fonte de dados for baseada em OLAP, TotalLevels retornará o valor 1. Long somente leitura.

Dim lngTotalLevels As Long
lngTotalLevels = ActiveCell.PivotField.TotalLevels

Value Retorna ou define um valor String que representa o nome do campo especificado no relatório de tabela dinâmica.

ActiveCell.PivotField.Value =

VisibleItems Retorna um objeto que representa um único item de tabela dinâmica visível um objeto PivotItem ou uma coleção de todos os itens visíveis (um objeto PivotItems ) no campo especificado. Somente leitura.

Dim pvtiVisibleItems As PivotItem
Set pvtiVisibleItems = ActiveCell.PivotField.VisibleItems

VisibleItemsList Retorna ou define um valor que especifica uma matriz de cadeias de caracteres que representam itens incluídos em um filtro manual aplicado a um PivotField. Leitura/gravação.

ActiveCell.PivotField.VisibleItemsList =

PivotFields.Count Retorna um valor Long que representa o número de objetos na coleção.

Dim lngCount As Long
lngCount = ActiveCell.PivotTable.VisibleFields.Count

PivotFields.Parent Retorna o objeto pai do objeto especificado. Somente leitura.

Dim pvtParent As PivotTable
Set pvtParent = ActiveCell.PivotTable.VisibleFields.Parent