Como criar uma tabela dinâmica em vba?

Um array dinâmico é algo onde você pode redimensionar o array e agregar mais valor a ele enquanto executa o código. Neste tutorial, exploraremos maneiras de escrever código onde você pode redimensionar e adicionar mais elementos.

Crie uma tabela dinâmica em VBA

  1. Primeiro, declare um array com seu nome.
  2. Depois disso, o número de elementos deixou os parênteses vazios.
  3. Agora use a instrução ReDim.
  4. No final, especifique o número de elementos que deseja adicionar ao array.
 Dim myArray() As String ReDim myArray(5)
matriz dinâmica em vba

Não se esqueça de ler este artigo de Joshua sobre desempenho de array fixo e dinâmico.

Matriz multidimensional dinâmica

O exemplo que usamos foi um array unidimensional e da mesma forma, você também usa a instrução ReDim para criar arrays multidimensionais dinâmicos.

 Dim myArray() As String ReDim myArray(5, 8)

Adicione um novo elemento a um array dinâmico em VBA

Um array dinâmico não terá sentido se você não puder adicionar um novo elemento a ele. No próximo exemplo, veremos como adicionar novos elementos depois de redefinir o número de elementos em um array.

 'declaring array with no element. '--------------------- Dim iNames() As String '--------------------- 'declaring variables to store counter _ 'and elements from the range. '---------------------- Dim iCount As Integer Dim iElement As Integer '---------------------- 'get the last row number to decide the _ 'number of elements for the array. '------------------------------------ iCount = Range("A1").End(xlDown).Row '------------------------------------ 're-defining the elements for the array. '------------------- ReDim iNames(iCount) '------------------- 'using a for loop to add elements in the array 'from the range starting from cell A1 '-------------------------------------------------- For iElement = 1 To iCount iNames(iElement - 1) = Cells(iElement, 1).Value Next iElement '-------------------------------------------------- 'print all the elements from the 'to the immediate window '-------------------- Debug.Print iNames(0) Debug.Print iNames(1) Debug.Print iNames(2) '--------------------

Vamos entender esse código passo a passo.

  1. Na primeira etapa, você declarou um array com o nome “myArray”.
  2. Depois disso você tem duas variáveis para salvar os valores do contador para o loop que você precisa usar posteriormente no código para obter valores do intervalo e adicionar esses valores como elementos ao array.
  3. Então você tem uma linha de código para obter a última linha do intervalo que ajuda você a saber quais elementos você precisa adicionar ao array.
  4. Na quarta etapa, você usou a instrução ReDim para redefinir os elementos da matriz usando o último número de linha obtido na etapa anterior.
  5. Então você tem FOR LOOP (For Next) que percorre o intervalo começando na célula A1, pega os valores de lá e os adiciona como elementos ao array, um por um.
  6. No final, você tem a instrução Debug.Print para imprimir todos os itens na janela imediata .

E quando adiciono um novo valor ao intervalo e executo o código novamente, ele adiciona automaticamente esse elemento ao array e o imprime na janela imediata .

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *