Matriz dinâmica no Excel VBA - Macros fáceis do Excel

Índice

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:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave