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
- Primeiro, declare um array com seu nome.
- Depois disso, o número de elementos deixou os parênteses vazios.
- Agora use a instrução ReDim.
- No final, especifique o número de elementos que deseja adicionar ao array.
Dim myArray() As String ReDim myArray(5)
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.
- Na primeira etapa, você declarou um array com o nome “myArray”.
- 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.
- 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.
- 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.
- 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.
- 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 .