Excel VBA ArrayList

Le strutture di dati vengono utilizzate per memorizzare una serie di dati in linguaggi di programmazione. Si lega alla memoria piuttosto che all'indirizzo. Un ArrayList è una delle strutture di dati in Excel. Il confronto con le normali matrici in Excel ArrayList è dinamico. Pertanto, non è necessaria alcuna dichiarazione iniziale di dimensione. ArrayList non fa parte di VBA ma è associato a una libreria esterna che può essere utilizzata con VBA.

ArrayList può essere definito come un elenco di una posizione di memoria nelle vicinanze. Dove vengono recuperati i valori utilizzando i numeri di indice. L'elenco inizia da un numero di indice '0', il primo elemento verrà inserito nell'indice '0' e il resto è seguito da 1, 2, 3, ecc. ArrayList offre numerose operazioni integrate, ordinamento, aggiunta, rimozione, inversione, ecc. sono alcuni di questi.

Aggiunta della libreria

Per utilizzare ArrayList nel VBA, è necessario includere la libreria " mscorlib.dll" fornita con .NET framework .

  • Premere F11 o fare clic con il pulsante destro del mouse sul nome del foglio per visualizzare la finestra del codice. Vai alla finestra del codice VBA, dal menu principale seleziona Strumenti .

  • Il menu degli strumenti contiene l'opzione "riferimenti" ed è costituito da un elenco di librerie che supportano VBA per l'inclusione di oggetti diversi. Fare clic sull'opzione di riferimento .

  • Ti porterà a una finestra con un elenco di diverse librerie che supporta in VBA ed Excel. Scorri verso il basso per trovare la " dll". Selezionare per confermare la selezione, quindi premere il pulsante 'OK'.

Ora la libreria è inclusa nel tuo codice VBA e supporterà diversi metodi associati a un ArrayList.

Come creare un array VBA in Excel?

Di seguito sono riportati i diversi esempi per creare ArrayList VBA in Excel.

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

Excel VBA ArrayList - Esempio n. 1

Come aggiungere valori all'arrayList usando VBA?

ArrayList funge da elenco in cui è possibile aggiungere valori. Questo memorizzerà automaticamente nelle diverse porzioni a partire da 0, 1, 2, ecc. I valori possono essere aggiunti o inseriti nell'ArrayList usando il metodo add.

In questo esempio, imparerai come aggiungere un elenco di valori in una ArrayList. Seguire i passaggi seguenti per aggiungere ArrayList utilizzando il codice VBA in Excel.

Passaggio 1: per aggiungere un elenco di valori a una ArrayList, creare una funzione arraylist1.

Codice:

 Private Sub arraylist1 () End Sub 

Passaggio 2: Ora vogliamo includere ArrayList nella funzione come oggetto in cui un elenco viene dichiarato come ArrayList.

Codice:

 Private Sub arraylist1 () Elenco completo come ArrayList End Sub 

Passaggio 3: poiché questo è un oggetto per usarlo, è necessario creare un'istanza di ArrayList. Imposta una nuova istanza per questo oggetto.

Codice:

 Sottotitolo privato arraylist1 () Elenco completo come ArrayList Set alist = New ArrayList End Sub 

Passaggio 4: ora usando la proprietà 'Aggiungi' di una ArrayList si aggiungono i valori alla ArrayList. Dove l'elenco viene aggiunto ai valori dell'indice in un ordine 0, 1, 2, 3 ecc.

Codice:

 Sottotitolo privato arraylist1 () Elenco dim come Elenco array impostato Set alist = Nuovo elenco elenchi array.Aggiungi indice "192" '(0) elenco. Aggiungi indice "168"' (1). Aggiungi indice "1" '(2) elenco. Aggiungi Indice "240" '(3) End Sub 

Passaggio 5: per verificare se i valori sono stati aggiunti all'elenco, stampiamo i valori dell'array utilizzando una finestra di messaggio. Per stampare i valori ogni indice viene stampato poiché i valori sono memorizzati in queste partizioni.

Codice:

 Sottotitolo privato arraylist1 () Elenco dim come Elenco array impostato Set alist = Nuovo elenco elenchi array.Aggiungi indice "192" '(0) elenco. Aggiungi indice "168"' (1). Aggiungi indice "1" '(2) elenco. Aggiungi "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) End Sub 

Passaggio 6: premere F5 o il pulsante Esegui per eseguire il programma e i valori verranno stampati come di seguito. Qui un indirizzo IP viene memorizzato nell'ArrayList e durante la stampa dei valori vengono concatenate ulteriori notazioni per formare l'indirizzo IP in un formato appropriato.

Errore di automazione in VBA

È un errore comune che si verifica durante l'esecuzione di una matrice. Un errore di automazione può riscontrare "Errore di runtime" -2146232576 (80131700) Errore di automazione "

Ciò è dovuto al fatto che non è installata la versione corretta del framework .NET. Per lavorare con ArrayList devi avere almeno .NET 3.5 o versioni successive di .NET framework.

Excel VBA ArrayList - Esempio n. 2

Ordinamento dell'arrayList utilizzando il codice VBA

ArrayList supporta diverse funzioni come ordinamento, inversione, ecc. Questo aiuta a ordinare i valori inseriti in un ArrayList. Dopo aver aggiunto un elenco all'ArrayList è possibile invertire l'elenco inserito.

Seguire i passaggi seguenti per ordinare ArrayList utilizzando il codice VBA:

Passaggio 1: Creare una funzione chiamata arraysort1 per eseguire l'ordinamento all'interno dei valori inseriti in un ArrayList.

Codice:

 Sub arraysort1 () End Sub 

Passaggio 2: dichiarare un oggetto 'arraysort' dell'ArrayList. Utilizzare questo oggetto per aggiungere e ordinare i valori in ArrayList.

Codice:

 Sub arraysort1 () Dim arraysort As ArrayList End Sub 

Passaggio 3: Simile al primo esempio, è necessario creare una nuova istanza dell'oggetto dichiarato. Imposta questa istanza come nuovo ArrayList.

Codice:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList End Sub 

Passaggio 4: ora utilizzando il metodo "Aggiungi" inserire gli elementi in ArrayList. Che non possiede alcun ordine sui valori. Inserito casualmente alcuni valori nell'elenco.

Codice:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" End Sub 

Passaggio 5: Per notare la differenza nell'ArrayList, stampiamo l'ArrayList dopo aver inserito i valori e prima di ordinarlo.

Codice:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Passaggio 6: premere F5 sulla tastiera o il pulsante Esegui nella finestra del codice per eseguire il programma per stampare ArrayList. L'ArrayList viene stampato nello stesso ordine in cui è stato inserito poiché utilizziamo i numeri di indice nell'ordine corretto.

Passaggio 7: ora a questo elenco applicare la proprietà sort di ArrayList. Utilizzare il metodo di ordinamento per ordinare l'elenco inserito. La proprietà sort ordinerà l'elenco dei valori in ordine crescente per impostazione predefinita.

Codice:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) Fine Sub 

Passaggio 8: Premi F5 o il pulsante Esegui sotto VBE per eseguire questo codice, dove i valori vengono ordinati e stampati in ordine dal più piccolo al più grande.

Excel VBA ArrayList - Esempio n. 3

Invertire la lista di array usando il codice VBA

Quando si desidera invertire l'ordine dei valori inseriti in un metodo inverso ArrayList è disponibile. Ciò invertirà l'ordine dell'elenco dal suo ordine corrente. Ora abbiamo già ordinato la ArrayList nell'esempio precedente, che è in ordine crescente.

Proviamo a invertire l'array ordinato per renderlo in ordine decrescente. Utilizzare il metodo inverso di ArrayList per eseguire questa operazione.

Codice:

 Sub arraysort2 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf) Sub 

Dopo aver applicato il metodo inverso, ArrayList diventerà in ordine decrescente e utilizzerà la finestra di messaggio per stampare l'array invertito. L'elenco ordinato viene modificato da un valore grande a un valore piccolo.

Cose da ricordare

  • ArrayList è di natura dinamica; non richiede la reinizializzazione.
  • Diversi metodi integrati sono associati ad ArrayList.
  • Rispetto all'array, ArrayList è facile da usare in Excel VBA.
  • Le librerie .NET di supporto devono essere incluse nel VBA per funzionare con ArrayList.
  • ArrayList è una posizione di memoria continua identificata mediante i valori di indice.

Articoli consigliati

Questa è una guida a VBA ArrayList. Qui discutiamo come creare ArrayList in Excel VBA insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Guida all'utilizzo di array VBA
  2. Excel ordina per numero
  3. Come ordinare in Excel utilizzando VBA?
  4. Tutorial sull'ordinamento in Excel

Categoria: