Excel VBA ReDim

Podemos ajustar o número de elementos em uma matriz através do VBA Redim. Redim não é uma função, é um programa de alocação de memória dinâmica através da instrução Redim. Quando usamos o Redim, uma quantidade específica de memória é mantida de lado para armazenar os dados.

Como usar a instrução VBA ReDim?

Discutiremos como usar a declaração VBA ReDim usando alguns exemplos.

Você pode fazer o download deste modelo do VBA ReDim Excel aqui - Modelo do VBA ReDim Excel

VBA ReDim - Exemplo # 1

Quando usamos Dim para uma matriz, não podemos alterar o valor do armazenamento de dados em uma matriz. Mas quando usamos o Redim, podemos alterar o valor armazenado em uma matriz. Esse processo de alteração da matriz é chamado de redimensionar a matriz.

Suponha que tenhamos um array A de 4 células, então ele será definido com;

  • Dim A (3) como duplo

Como podemos ver, todas as células têm "0" como valor armazenado. Agora, suponha que se Redimirmos o Dim A com 3 dados de célula e armazenarmos o valor nele, será semelhante ao abaixo.

  • ReDim B (2) como duplo

B (0) = 1; B (1) = 3, B (2) = -6

Será semelhante a;

Agora, se quisermos adicionar células, podemos fazê-lo. Em seguida, atribuirá automaticamente o "0" a essas células. Agora, para implementar o ReDim, pressione Alt + F11 para abrir a janela VBA. E no menu Inserir, selecione a opção Módulo para abrir uma nova janela, como mostrado abaixo.

Agora abra a subcategoria e adicione qualquer nome. Como estamos usando o ReDim, nomeamos como UsingReDim .

Código:

 Sub UsingReDim () End Sub 

Agora, antes de definir ReDim, primeiro defina qualquer número inteiro. Aqui, definimos como "A" com o comprimento da matriz 3. E armazene alguns valores em uma matriz criada de 3 células, como mostrado abaixo.

Código:

 Sub Usando ReDim () Dim A (2) Como Inteiro ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Agora, imprimindo os valores armazenados no Inteiro A, precisamos criar uma caixa de mensagem com a ajuda do comando MsgBox, como mostrado abaixo.

Código:

 Sub Usando ReDim () Dim A (2) Como Inteiro A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (2) End Sub 

Agora execute o código clicando no botão play ou na tecla F5, como mostrado abaixo.

Agora usaremos o ReDim e ele armazenará mais caracteres do que definidos na matriz. Para isso, use ReDim para o inteiro A. definido. Primeiro, removeremos a contagem de células definida de Dim. O uso da função Redim é o seguinte:

  • ReDim A (2) é usado para a matriz de células A (0), A (1), A (2) .
  • O ReDim A (4) é usado para células A (0), A (1), A (2), A (3), A (4) com duas células fictícias extras.

Código:

 Sub Usando ReDim () Dim A () Como Inteiro ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Uma vez feito, execute o código completo clicando no botão play ou usando a tecla F5. Depois de executar o código completo, criaremos 3 caixas de mensagem, mas com uma mensagem contendo apenas "0", como mostrado abaixo.

Isso porque o ReDim realmente possui apenas 3 valores, mas não carregava valores armazenados em números inteiros definidos. O uso do Redim apenas não armazena nenhum valor e leva adiante os valores armazenados anteriormente. Para aplicar o mesmo, precisamos preservar os valores do número inteiro definido A, com a ajuda de ReDim. Usando Preserve no VBA, podemos armazenar o valor no ReDim. Para isso, adicionaremos Preserve after ReDim no VBA Codeas, mostrado abaixo.

Código:

 Sub Usando ReDim () Dim A () Como Inteiro ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Fim Sub 

Agora execute o código completo novamente. Veremos 3 caixas de mensagem com todos os valores armazenados, como mostrado abaixo.

Agora, você deve estar se perguntando por que usamos A (4) com ReDim Preserve?

Abaixo está a explicação disso. Onde 1ª, e posição da matriz são ocupadas com os valores 1, 2 e 3, respectivamente. E a e a 5ª posição, que representam a contagem de 3 e 4 da matriz A, são células fictícias. O que significa que, se não houver dados armazenados na e 5ª posição, ele considerará automaticamente o valor “0” e a mensagem não será preenchida.

Se tentarmos ver os valores armazenados na e 5ª posição da matriz ReDim, também precisamos inserir uma caixa de mensagem para essas 2 posições.

Código:

 Sub UsingReDim () Dim A () Como Inteiro ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Como adicionamos a mensagem na caixa para a e 5ª posição sem armazenar nenhum valor. Agora execute o código novamente.

Como podemos ver nas capturas de tela acima, para as posições 4 e 5, temos caixas de mensagem, mas o valor está sendo exibido como "0". O que significa explica a afirmação acima. Se não houver um valor definido, o ReDim Preserve considerará automaticamente e preencherá “0” no restante das células.

VBA ReDim - Exemplo # 2

Agora vamos ver como usar a instrução ReDim com String em vez de Inteiro.

Código:

 Sub UsingReDim () Dim A () Como String ReDim A (3) A (0) = "Cliente" A (1) = "Produto" A (2) = "Identificação do produto" ReDim Preserve A (4) MsgBox A (0 ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Depois de concluído, execute o código completo usando a tecla F5 ou manualmente, como mostrado abaixo.

Como podemos ver na captura de tela acima, estamos recebendo todos os caracteres definidos e armazenados nas 3 primeiras caixas de mensagem. E na quarta e quinta caixa não estamos recebendo nada. Como ReDim não armazena nenhum valor, se não definido. Para Inteiros, ele refletirá como "0", mas com String, mostrará apenas mensagens em branco.

Prós do Excel VBA ReDim

  • O VBA ReDim nos permite redefinir os valores da dimensão.
  • Podemos definir quantas matrizes dimensionais com valor zero ou zero e armazenar os valores posteriormente.
  • ReDim, que significa Re-Dimensioning, permite a adição de qualquer número de matrizes de dados sem aumentar o tamanho dos dados armazenados.

Coisas para lembrar

  • Lembre-se sempre de adicionar Preserve after ReDim no VBA, para armazenar as dimensões usadas anteriormente.
  • Se uma dimensão for definida como String, qualquer posição deixada em branco na atribuição de valores permanecerá em branco e, assim que imprimirmos o mesmo com a ajuda da caixa de mensagem, também será exibida a caixa de mensagem em branco.
  • Se definimos as dimensões Dim com 3 caracteres ou valores de célula, no ReDim podemos usar qualquer número de dimensões que possuam valores já definidos e armazenados em Dim.

Artigos recomendados

Este foi um guia para o Excel VBA ReDim. Aqui discutimos como usar a instrução VBA ReDim para remover espaços, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Como usar o VBA On Error Statement?
  2. Formato numérico no VBA
  3. Como usar a função de localização do VBA?
  4. Função VBA TRIM

Categoria: