Se o tamanho da sua matriz aumentar e você não quiser fixar o tamanho da matriz, você pode usar o Palavra-chave ReDim. Excel VBA em seguida, altera o tamanho da matriz automaticamente.
Adicione alguns números à coluna A.
Coloque um botão de comando em sua planilha e adicione as seguintes linhas de código:
1. Primeiro, declaramos a matriz denominada números. Também declare duas variáveis do tipo Integer. Um denominado tamanho e outro denominado i.
Dim numbers () As Integer, size As Integer, i As Integer
Nota: o array ainda não tem tamanho. números, tamanho e i são escolhidos aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esses nomes no restante do código.
2. Em seguida, determinamos o tamanho do array e o armazenamos no tamanho variável. Você pode usar a função de planilha CountA para isso. Adicione a seguinte linha de código:
size = WorksheetFunction.CountA (Worksheets (1) .Columns (1))
3. Agora sabemos o tamanho do array e podemos redimensioná-lo. Adicione a seguinte linha de código:
Números ReDim (tamanho)
4. Em seguida, inicializamos cada elemento do array. Usamos um loop.
Para i = 1 para o tamanho
números (i) = Células (i, 1). Valor
Proximo eu
5. Exibimos o último elemento do array usando um MsgBox.
Números de MsgBox (tamanho)
6. Saia do Editor do Visual Basic e clique no botão de comando na planilha.
Resultado:
7. Agora, para ver claramente por que isso é chamado de matriz dinâmica, adicione um número à coluna A.
8. Clique no botão de comando novamente.
Conclusão: o Excel VBA alterou automaticamente o tamanho desse array dinâmico.
9. Ao usar a palavra-chave ReDim, você apaga todos os dados existentes armazenados atualmente no array. Por exemplo, adicione as seguintes linhas de código ao código criado anteriormente:
Números ReDim (3)
Números de MsgBox (1)
Resultado:
A matriz está vazia.
10. Quando você quiser preservar os dados na matriz existente ao redimensioná-la, use a palavra-chave Preserve.
Números de ReDim Preserve (3)
Números de MsgBox (1)
Resultado: