Macro Excel - Seleção Dinâmica de Coluna

  • Questão
  • Solução
  • Nota

Questão

Eu estou apenas começando a aprender macros do Excel. Eu estava trabalhando em uma folha onde eu tenho que selecionar uma coluna dinamicamente, com base apenas no nome do cabeçalho da coluna. Deixe-me explicar.

Digamos que haja uma planilha do Excel que contenha as seguintes colunas (de A1 a D1):

 RecNo Cust_ID Cust_Name Contact_Num 

Abaixo disso, há dados do cliente que estão presentes. Agora, eu quero extrair apenas o Cust_ID (da coluna B) e Cust_Name (da coluna C) para todos os registros.

No entanto, o problema é que não é necessário que Cust_ID sempre estaria na coluna B. Embora o título sempre seria Cust_ID, seu local pode ser alterado para coluna C em alguma outra planilha que tenha sido gerada e Cust_Name poderia estar presente em Coluna B (as duas colunas que precisam ser extraídas foram trocadas).

Usando a função match, eu sou capaz de determinar a posição da coluna, mas depois disso eu não sou capaz de selecionar essa coluna.

A função que usei para determinar o número da coluna é dada abaixo:

 WorksheetFunction.Match ("Cust_ID", Range ("A1: D1"), 0) 

Solução

Apenas use estes:

 'Determinando o alcance da folha de dados. Dim lngLastRow Como Long Dim lngLastCol Como Long Dim varDataSelect Como Variant 'Selecione linhas e colunas de forma dinâmica. Selection.End (xlDown) .Selecione lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) .Selecione lngLastCol = ActiveCell.Column 'O nome da planilha "MonthlyReceivedClaims_Data" inicia na Fila 1 Coluna 1' e termina em ": R" & lngLastRowNum & "C" & lngLastCol varDataSelect = "MonthlyReceivedClaims_Data! R1C1: R" & lngLastRowNum & "C" & lngLastCol ActiveWorkbook.PivotCaches.Add (SourceType: = xlDatabase, SourceData: = _ varDataSelect) .CreatePivotTable _ TableDestination: = "", TableName: = "PivotTable1", DefaultVersion: = _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination: = ActiveSheet.Cells (3, 1) 

'Também ajuda a usar a função de macro de registro em Ferramentas.

'Clique no registro. Faça o relatório ou a tabela dinâmica como você deseja.

Em seguida, clique em parar registro e editar o código conforme necessário.

Nota

Obrigado a AM por esta dica no fórum.

Artigo Anterior Próximo Artigo

Principais Dicas