Excel VBA ReDim

Possiamo regolare il numero di elementi in un array tramite VBA Redim. Redim non è una funzione, è un programma di allocazione dinamica della memoria tramite istruzione Redim. Quando utilizziamo Redim, una specifica quantità di memoria viene tenuta da parte per archiviare i dati.

Come utilizzare la dichiarazione VBA ReDim?

Discuteremo come utilizzare la Dichiarazione ReDim VBA usando alcuni esempi.

Puoi scaricare questo modello VBA ReDim Excel qui - Modello VBA ReDim Excel

VBA ReDim - Esempio n. 1

Quando utilizziamo Dim per un array, non possiamo modificare il valore dell'archivio dati in un array. Ma quando utilizziamo Redim, possiamo modificare il valore memorizzato in un array. Questo processo di modifica dell'array viene chiamato ridimensionamento dell'array.

Supponiamo di avere un array A con un valore di 4 celle quindi verrà definito con;

  • Dim A (3) Come doppio

Come possiamo vedere tutte le celle hanno "0" come valore memorizzato. Ora supponiamo che se ridimoniamo la Dim A con i dati di 3 celle e memorizziamo il valore in essa, apparirà come di seguito.

  • ReDim B (2) Come doppio

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

Sembrerà come;

Ora se vogliamo aggiungere celle in esso, possiamo farlo. Quindi assegnerà automaticamente lo "0" a quelle celle. Ora per l'implementazione di ReDim, premi Alt + F11 per aprire la finestra VBA. E dal menu Inserisci selezionare l'opzione Modulo per aprire una nuova finestra come mostrato di seguito.

Ora apri la sottocategoria e aggiungi qualsiasi nome. Poiché stiamo usando ReDim, abbiamo chiamato come UsingReDim .

Codice:

 Sub UsingReDim () End Sub 

Ora, prima di definire ReDim, prima definire un numero intero. Qui lo abbiamo definito come "A" con lunghezza dell'array 3. E memorizza alcuni valori in un array creato di 3 celle come mostrato di seguito.

Codice:

 Sub Using ReDim () Dim A (2) Come numero intero ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Ora stampando i valori memorizzati in Integer A dobbiamo creare una finestra di messaggio con l'aiuto del comando MsgBox come mostrato di seguito.

Codice:

 Uso secondario ReDim () Dim A (2) Come intero A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Ora esegui il codice facendo clic sul pulsante di riproduzione o sul tasto F5 come mostrato di seguito.

Ora useremo ReDim e memorizzerà più di caratteri definiti nell'array. Per questo uso ReDim per intero definito A. Innanzitutto, rimuoveremo il conteggio di celle definito da Dim. L'uso della funzione Redim è il seguente:

  • ReDim A (2) viene utilizzato per l'array di celle A (0), A (1), A (2) .
  • ReDim A (4) viene utilizzato per le celle A (0), A (1), A (2), A (3), A (4) con due celle fittizie aggiuntive.

Codice:

 Uso secondario ReDim () Dim A () Come numero intero 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 

Una volta fatto, esegui il codice completo facendo clic sul pulsante di riproduzione o usando il tasto F5. Una volta eseguito il codice completo, verranno visualizzate 3 finestre di messaggio ma con un messaggio contenente solo "0" come mostrato di seguito.

Questo perché ReDim in realtà ha solo 3 valori ma non ha valori memorizzati in numeri interi definiti. L'uso di Redim non memorizza alcun valore e non porta avanti i valori precedentemente memorizzati. Per applicare lo stesso dobbiamo preservare i valori dell'intero definito A, con l'aiuto di ReDim. Usando Preserve in VBA, possiamo archiviare il valore in ReDim. Per questo, aggiungeremo Preserve dopo ReDim nei codici VBA mostrati di seguito.

Codice:

 Uso secondario ReDim () Dim A () Come numero intero 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) End Sub 

Ora esegui di nuovo il codice completo. Vedremo 3 finestre di messaggio con tutti i valori memorizzati come mostrato di seguito.

Ora, ti starai chiedendo perché abbiamo usato A (4) con ReDim Preserve?

Di seguito è la spiegazione di esso. Dove la , e 3ª posizione dell'array sono occupate rispettivamente con i valori 1, 2 e 3. E la quarta e la quinta posizione che rappresentano il conteggio 3 e 4 dell'array A sono celle fittizie. Ciò significa che se non sono memorizzati dati 4a e 5a posizione, verrà automaticamente considerato il valore "0" e il messaggio non verrà popolato.

Se proviamo a vedere i valori memorizzati nella 4a e 5a posizione dell'array ReDim, allora dobbiamo inserire una finestra di messaggio anche per queste 2 posizioni.

Codice:

 Uso secondario ReDim () Dim A () Come numero intero 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 

Come abbiamo aggiunto il messaggio in scatola per la 4a e 5a posizione senza memorizzare alcun valore. Ora esegui di nuovo il codice.

Come possiamo vedere nelle schermate sopra, per la 4a e la 5a posizione abbiamo finestre di messaggio ma il valore è mostrato come "0". Ciò significa che spiega la dichiarazione precedente. Se non è stato definito alcun valore, ReDim Preserve prenderà automaticamente in considerazione e riempirà "0" nel resto delle celle.

VBA ReDim - Esempio n. 2

Ora vediamo come utilizzare l'istruzione ReDim con String anziché Integer.

Codice:

 Uso secondario ReDim () Dim A () Come stringa ReDim A (3) A (0) = "Cliente" A (1) = "Prodotto" A (2) = "ID prodotto" ReDim Preserve A (4) MsgBox A (0 ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Una volta fatto, quindi eseguire il codice completo utilizzando il tasto F5 o manualmente come mostrato di seguito.

Come possiamo vedere nello screenshot sopra, stiamo ottenendo tutti i caratteri definiti e memorizzati nelle prime 3 finestre di messaggio. E nel 4 ° e 5 ° riquadro non otteniamo nulla. Poiché ReDim non memorizza alcun valore se non definito. Per Integer si rifletterà come "0" ma con String mostrerà solo messaggi vuoti.

Pro di Excel VBA ReDim

  • VBA ReDim ci consente di ridefinire i valori della dimensione.
  • Possiamo definire tante matrici dimensionali senza valore zero o zero e memorizzare i valori in un secondo momento.
  • ReDim significa che il ridimensionamento consente di aggiungere qualsiasi numero di array di dati senza aumentare le dimensioni dei dati memorizzati.

Cose da ricordare

  • Ricorda sempre di aggiungere Preserve dopo ReDim in VBA, in modo che memorizzerà le dimensioni utilizzate in precedenza.
  • Se una dimensione è definita come Stringa, qualsiasi posizione lasciata vuota nell'assegnazione dei valori, rimarrà vuota e una volta stampata la stessa con l'aiuto della finestra di messaggio, verrà visualizzata anche una finestra di messaggio vuota.
  • Se abbiamo definito le dimensioni Dim con 3 caratteri o valori di cella, in ReDim possiamo usare un numero qualsiasi di dimensioni che portano valori già definiti e memorizzati in Dim.

Articoli consigliati

Questa è stata una guida a Excel VBA ReDim. Qui abbiamo discusso su come utilizzare la Dichiarazione VBA ReDim per rimuovere gli spazi insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti–

  1. Come utilizzare VBA sulla dichiarazione di errore?
  2. Formato numero in VBA
  3. Come usare la funzione Trova VBA?
  4. Funzione TRIM VBA

Categoria: