Funzione VBA UBound - Come utilizzare UBound in Excel VBA?

UBOUND o anche conosciuta come Upper Bound, questa funzione in VBA viene utilizzata con la sua funzione opposta che LBOUND o anche conosciuta come funzione Lower Bound, l'uso di questa funzione è per definire la lunghezza di un array in un codice e come suggerisce il nome UBOUND viene utilizzato per definire il limite superiore dell'array.

Funzione VBA UBOUND

Come si dice la lunghezza massima dell'array in Excel? Sì, possiamo vedere e aggiornare manualmente la lunghezza massima dell'array, ma se lo fai per tutto questo tempo, oggi è la fine perché abbiamo una funzione chiamata UBOUND per determinare la lunghezza massima dell'array. Segui questo articolo per avere più conoscenza della funzione UBOUND in Excel VBA.

UBOUND sta per Upper Bound. Spesso durante la codifica, potremmo richiedere di trovare la lunghezza massima dell'array. Ad esempio, MyResult (24) significa che il nome dell'array MyResult contiene 25 valori perché l'array inizia da zero, non da uno. Quindi 24 significa +1, cioè un totale di 25 valori.

Qui la lunghezza massima dell'array è 24. Invece di fornire manualmente la lunghezza dell'array, possiamo usare la funzione incorporata UBOUND per ottenere la lunghezza massima dell'array.

Il codice è: UBOUND (MyResult), ovvero UBOUND (24)

Quindi la funzione VBA UBOUND di Excel rappresenta il limite superiore della dimensione dell'array.

Come utilizzare la funzione VBA UBound in Excel?

La formula di VBA UBOUND è molto semplice perché ha solo due parametri.

UBound (Arrayname (, Dimension))
  • Nome array: questo è il nome del nome dell'array che abbiamo definito. Ad esempio, nell'esempio precedente, MyResult è il nome dell'array.
  • (Dimensione): se l'array ha più di una dimensione, è necessario specificare la dimensione dell'array. Se lo ignori, tratterà la prima dimensione per impostazione predefinita.

La funzione Excel VBA UBOUND è molto utile per determinare la lunghezza dei loop durante l'esecuzione dei loop.

Esempi di funzione UBOUND in Excel VBA

Di seguito sono riportati gli esempi pratici della funzione VBA UBound.

Esempio 1

Per iniziare il procedimento, lasciami scrivere il semplice codice. Seguire i passaggi seguenti per applicare la funzione VBA UBOUND.

Passaggio 1: avvia la macro Excel e definisci il nome della variabile.

Codice:

Sub Ubound_Example1 () Dim ArrayLength (da 0 a 4) As String

Passaggio 2: assegnerò valori a questo nome di matrice.

Codice:

Sub Ubound_Example1 () Dim ArrayLength (da 0 a 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = Sottotitoli "Classe VBA"

Passaggio 3: ora, utilizzando una finestra di messaggio con la funzione UBOUND, vedremo la lunghezza massima dell'array.

Codice:

Sub Ubound_Example1 () Dim ArrayLength (da 0 a 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = La lunghezza limite superiore "Classe VBA" MsgBox "è:" & UBound (ArrayLength) End Sub

Passaggio 4: eseguire questo codice premendo il tasto F5 oppure è anche possibile eseguire il codice manualmente, come mostrato nello screenshot qui sotto.

La finestra di messaggio ti mostrerà il numero del limite superiore della matrice che verrà mostrato nella finestra di messaggio.

In questo modo, utilizzando la funzione VBA UBOUND di Excel, possiamo ottenere la lunghezza del limite superiore di un array.

Esempio n. 2: utilizzo della funzione VBA UBOUND di Excel per copiare i dati

Supponi di avere un elenco di dati in un foglio Excel come quello sottostante.

Questi dati verranno aggiornati quotidianamente e dovrai copiarli nel nuovo foglio ogni volta che viene aggiornato. L'aggiornamento manuale richiederà una notevole quantità di tempo sul posto di lavoro, ma ti mostrerò un semplice codice macro per automatizzarlo.

Passaggio 1: creare una macro e definire la variabile dell'array.

Codice:

Sub Ubound_Example2 () Dim DataRange () As Variant End Sub

Passaggio 2: ora attiva il foglio dati facendo riferimento al suo nome.

Codice:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Attiva End Sub

Passaggio 3: ora assegna l'intervallo di dati alla variabile definita utilizzando il codice seguente.

Codice:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Attiva DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add Range(ActiveCell, ActiveCell.Offset(UBound(DataRange, 1) - 1, UBound(DataRange, 2) - 1)) = DataRange End Sub

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.

Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activate DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Cancella DataRange End Sub

Cose da ricordare

  • UBOUND restituisce la lunghezza massima dell'array.
  • L'array inizia da 0, non da 1.
  • Se si desidera il valore inferiore dell'array, è necessario utilizzare VBA LBOUND.
  • Se l'array ha più di una dimensione, è necessario specificare anche il numero di dimensione.

Articoli interessanti...