Funzione UBound Excel VBA
Quanto spesso ti viene in mente una situazione in cui è necessario menzionare la lunghezza massima o il limite superiore dei dati di un array che funzionano con Excel? Il più delle volte, giusto? E come trovi lo stesso? Forse manualmente la maggior parte delle volte. Tuttavia, è possibile automatizzarlo e ottenere la lunghezza massima o il limite superiore di un array utilizzando una funzione VBA chiamata UBound.
Inoltre, ha il modo più bello per fare un giro. Ad esempio, se si utilizza un ciclo For nell'array, si voleva sicuramente eseguire il ciclo di tutti gli elementi dell'array. In tal caso, sarebbe un lavoro noioso scoprire manualmente il limite superiore e menzionarlo nel ciclo. Ridurrà anche la generalità del codice. Pertanto, la funzione VBA UBound risulta utile in tali scenari.
UBound sta per limite superiore e fornisce il limite superiore o la lunghezza massima dell'array in Excel VBA.
Formula per la funzione UBound in Excel VBA
La funzione UBA UBA VBA di Excel presenta la sintassi seguente.
UBound (Arrayname (, Dimensione))
Dove,
- Arrayname: nome dell'array che hai definito. Questo argomento è un argomento obbligatorio / richiesto.
- Dimensione: argomento facoltativo che specifica la dimensione di un array. Che si tratti di un array monodimensionale, bidimensionale o multidimensionale. Per impostazione predefinita, assumerà l'array unidimensionale se non specificato.
Poiché questa funzione ha solo due argomenti, diventa molto più facile ricordare la sintassi di questa funzione.
Come utilizzare la funzione UBound di Excel VBA?
Impareremo come utilizzare una funzione VBA UBound con alcuni esempi in Excel.
Puoi scaricare questo modello VBA UBound Excel qui - Modello VBA UBound ExcelEsempio n. 1 - UBound VBA con array monodimensionale
Seguire i passaggi seguenti per utilizzare la funzione UBound in VBA.
Passaggio 1: nella scheda Sviluppatore fare clic su Visual Basic per aprire l'editor VB.
Passaggio 2: fare clic su Inserisci e selezionare la scheda Modulo per aggiungere un nuovo modulo vuoto a VBE.
Passaggio 3: nel VBE, iniziare a scrivere la macro e definire il nome della variabile.
Codice:
Sub Onedm_Ubound () Dim IndiaCity (4) As String End Sub
Qui la variabile IndiaCity è definita con 5 elementi. Il tipo di variabile è una stringa.
Nota: la matrice inizia da 0 (zero). Quindi, questo array sarà composto da 5 elementi.Passaggio 4: assegnare valori agli elementi dell'array.
Codice:
Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "End Sub
Qui, l'elemento zeroth ha un valore assegnato come "Mumbai", il primo elemento ha un valore assegnato come "Bengaluru" e così via.
Passaggio 5: utilizzare la funzione UBound insieme a MsgBox per ottenere il limite superiore per l'array.
Codice:
Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" Upper Bound for the Array è: "& UBound (IndiaCity) End Sub
Passaggio 6: esegui questo codice premendo direttamente F5 o premendo manualmente il pulsante Esegui sul pannello in alto a sinistra. Verrà visualizzata una finestra di messaggio con il messaggio "Il limite superiore per l'array è: 4 ".
Si noti che la funzione UBound non rileva il limite superiore dagli elementi di Array. Scopre solo il numero massimo di elementi contenuti nell'array.
Esempio n. 2 - UBound VBA con array bidimensionale
Seguire i passaggi seguenti per utilizzare la funzione UBound in VBA.
Passaggio 1: definire una variabile che può contenere dati bidimensionali.
Codice:
Sub TwoDm_UBound () Dim Array_Test (da 0 a 6, da 1 a 8) Come sottotitolo di stringa
Passaggio 2: definire un nuovo messaggio variabile e utilizzarlo in MsgBox. Questa variabile ci aiuterà a stampare contemporaneamente i limiti superiori di entrambe le dimensioni.
Codice:
Sub TwoDm_UBound () Dim Array_Test (da 0 a 6, da 1 a 8) Come messaggio Dim String Messaggio MsgBox End End Sub
Passaggio 3: provare ora le seguenti istruzioni che consentono al sistema di stampare entrambe le dimensioni dell'array nella stessa finestra di messaggio.
Codice:
Sub TwoDm_UBound () Dim Array_Test (da 0 a 6, da 1 a 8) Come stringa Dim Messaggio Messaggio = "Il limite superiore per la prima dimensione è:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "Il limite superiore per la seconda dimensione è : "& UBound (Array_Test, 2) e vbCrLf MsgBox Messaggio End Sub
Le due istruzioni menzionate nel codice sopra consentono al sistema di stampare entrambe le dimensioni nella stessa finestra di messaggio. La prima istruzione memorizza il valore del limite superiore per la prima dimensione nella variabile Message e termina la riga (vbCrLf). La seconda istruzione aggiunge il primo valore assegnato alla variabile Message e lo combina con il limite superiore delle seconde dimensioni con un messaggio pop-up.
Poiché vbCrLf viene utilizzato in entrambe le istruzioni, funziona come ritorno a capo / a capo qui in entrambe le istruzioni.
Passaggio 4: eseguire il codice premendo F5 o il pulsante Esegui e vedere l'output.
Su linee simili, possiamo andare fino a più dimensioni e vedere il limite superiore per ognuna di esse.
Esempio n. 3 - Funzione UBound per aggiornare automaticamente i dati nel foglio
Supponiamo di avere un set di dati come mostrato nell'immagine seguente.
Questi dati vengono aggiornati e devi copiarli ogni tanto. Ora, è davvero un lavoro noioso controllare sempre gli aggiornamenti dei dati e quindi copiarli nel nuovo foglio. Inoltre, richiede molto tempo. Possiamo provare ad automatizzarlo usando la funzione UBound in VBA? Vediamo.
Seguire i passaggi seguenti per aggiornare automaticamente i dati nel foglio utilizzando la funzione UBA VBA:
Passaggio 1: definire una variabile creando una macro.
Codice:
Sottotitolo Ex3_UBound () Dim DataUpdate () come variante finale sub
Passaggio 2: attiva il foglio di lavoro che contiene i tuoi dati. In questo caso, il nome del foglio è " Dati ".
Codice:
Sub Ex3_UBound () Dim DataUpdate () Come fogli varianti ("Dati"). Attiva fine sottotitoli
Passaggio 3: assegnare l'intervallo alla variabile appena creata. Useremo la gamma di fogli attivati per questo scopo.
Codice:
Sub Ex3_UBound () Dim DataUpdate () Come fogli varianti ("Dati"). Attiva DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub
Passaggio 4: aggiungi un nuovo foglio di lavoro a Excel, in cui i dati aggiornati possono essere copiati e incollati.
Codice:
Sub Ex3_UBound () Dim DataUpdate () come fogli varianti ("Dati"). Attiva DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Fogli di lavoro. Aggiungi End Sub
Passaggio 5: ora, utilizzare la seguente riga di codice che consente di copiare e incollare automaticamente i dati dal foglio "Dati" in un foglio Excel appena creato.
Codice:
Sub Ex3_UBound () Dim DataUpdate () come fogli di variante ("Dati"). Attiva DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Fogli di lavoro. Aggiungi Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub
Il codice sopra compenserà le celle dal foglio "Dati" fino al limite superiore che può essere ottenuto dalla funzione UBound utilizzata e assegna l'intervallo alla variabile DataUpdate.
Passaggio 6: eseguire il codice premendo F5 o il pulsante Esegui e vedere l'output.
Come puoi vedere, c'è un nuovo foglio aggiunto nella cartella di lavoro di Excel in cui tutti i dati del foglio "Dati" vengono copiati automaticamente.
Questo è un codice dinamico. Ciò che intendo dire dinamico è, anche se aggiungo per quanto riguarda le colonne e per le righe, verrà automaticamente copiato in un nuovo foglio.
Passaggio 7: aggiungiamo alcune righe e colonne ai dati e vediamo se funziona davvero.
Passaggio 8: Premi nuovamente il pulsante Esegui dopo aver aggiornato la scheda tecnica e vedere la magia.
Se puoi vedere, viene aggiunto un nuovo foglio (colorato) e una nuova colonna di Età insieme a due nuove righe viene aggiunta anche in quel foglio. Significa, qualunque cosa aggiorniamo nel file principale (Dati), questo codice copierà automaticamente tutto da quello e lo incollerà in un nuovo foglio.
Cose da ricordare
- UBound fornisce il limite superiore / lunghezza massima di un array e non il limite superiore dai punti dati presenti in un array.
- L'array inizia sempre dalla 0a posizione come parallelo alla maggior parte dei linguaggi di programmazione come C, C ++, Python.
- Se l'array è multidimensionale, è necessario specificare anche l'argomento dimensione che accetta valori interi numerici come 1, 2, 3, ecc. 1 sta per One-Dimension, 2 per Two-Dimensional e così via.
Articoli consigliati
Questa è una guida alla funzione UBA VBA. Qui discutiamo come utilizzare la funzione UBound di Excel VBA insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:
- Funzione di divisione VBA con esempi
- Funzione maiuscola di Excel
- Partita VBA
- Funzione SOFFITTO in Excel
- Come utilizzare i fogli di lavoro VBA?