Funció VBA UBound | Com utilitzar UBound a Excel VBA?

UBOUND o també coneguda com Upper Bound, aquesta funció en VBA s'utilitza amb la seva funció oposada que LBOUND o també coneguda com a funció Lower Bound, l'ús d'aquesta funció és definir la longitud d'una matriu en un codi i, com el seu nom indica UBOUND s'utilitza per definir el límit superior de la matriu.

Funció VBA UBOUND

Com s'indica la longitud màxima de la matriu a Excel? Sí, podem veure i actualitzar manualment la longitud màxima de la matriu, però si ho feu tot mentre que avui és el final perquè tenim una funció anomenada UBOUND per determinar la longitud màxima de la matriu. Seguiu aquest article per obtenir més coneixement de la funció UBOUND a Excel VBA.

UBOUND significa Upper Bound. Sovint, en la codificació, és possible que necessitem trobar la longitud màxima de la matriu. Per exemple, MyResult (24) significa el nom de la matriu MyResult conté 25 valors perquè la matriu comença des de zero, no des d'un. Així, 24 significa +1, és a dir, totalment 25 valors.

Aquí la longitud màxima de la matriu és de 24, en lloc de subministrar-la manualment, podem utilitzar la funció incorporada UBOUND per obtenir la longitud màxima de la matriu.

El codi és:ENLLAÇ (MyResult)és a dir, ENLLAÇAT (24)

Per tant, la funció Excel VBA UBOUND representa el límit superior de la mida de la matriu.

Com s'utilitza la funció VBA UBound a Excel?

La fórmula de VBA UBOUND és molt senzilla perquè només té dos paràmetres.

UBound (Arrayname [, dimensió])
  • Nom de la matriu: Aquest és el nom del nom de matriu que hem definit. Per exemple, a l'exemple anterior, MyResult és el nom de la matriu.
  • [Dimensió]: Si la matriu té més d’una dimensió, hem d’especificar la dimensió de la matriu. Si ignoreu, tractarà la primera dimensió per defecte.

La funció Excel VBA UBOUND és molt útil per determinar la longitud dels bucles mentre s’executen els bucles.

Exemples de funció UBOUND a Excel VBA

A continuació es mostren els exemples pràctics de la funció VBA UBound.

Podeu descarregar aquesta plantilla de funció VBA UBound aquí - Plantilla de funció VBA UBound

Exemple 1

Per iniciar el procediment, deixeu-me escriure el codi senzill. Seguiu els passos següents per aplicar la funció VBA UBOUND.

Pas 1: Inicieu la macro Excel i definiu el nom de la variable.

Codi:

 Sub Ubound_Example1 () Dim ArrayLength (0 a 4) com a cadena 

Pas 2: Assignaré valors a aquest nom de matriu.

Codi:

 Sub Ubound_Example1 () Dim ArrayLength (0 a 4) As String ArrayLength (0) = "Hola" ArrayLength (1) = "Amic" ArrayLength (2) = "Benvinguda" ArrayLength (3) = "a" ArrayLength (4) = Subclic final de la "classe VBA" 

Pas 3: Ara, utilitzant un quadre de missatge amb la funció UBOUND, veurem la longitud màxima de la matriu.

Codi:

 Sub Ubound_Example1 () Dim ArrayLength (0 a 4) As String ArrayLength (0) = "Hola" ArrayLength (1) = "Amic" ArrayLength (2) = "Benvinguda" ArrayLength (3) = "a" ArrayLength (4) = La longitud del límit superior "MsbBox" de la classe VBA és: "Subfinit final de" UBound (ArrayLength) 

Pas 4: Executeu aquest codi prement la tecla F5 o també podeu executar el codi manualment, tal com es mostra a la captura de pantalla següent.

el quadre de missatge us mostrarà el número límit superior de la matriu que es mostrarà al quadre de missatges.

Així, mitjançant la funció Excel VBA UBOUND, podem obtenir la longitud del límit superior d’una matriu.

Exemple 2: utilitzar la funció Excel VBA UBOUND per copiar les dades

Suposem que teniu una llista de dades en un full Excel com el següent.

Aquestes dades s’actualitzaran diàriament i haureu de copiar-les al full nou cada vegada que s’actualitzin. Actualitzar-ho manualment trigarà un temps considerable al vostre lloc de treball, però us mostraré un codi macro senzill per automatitzar-lo.

Pas 1: Creeu una macro i definiu la variable de matriu.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Com a variant final Sub 

Pas 2: Ara activeu el full de dades arbitrant el seu nom.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Com a fulls de dades variables ("Full de dades"). Activeu End Sub 

Pas 3: Ara assigneu l'interval de dades a la variable definida mitjançant el codi següent.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Com a fulls de dades variables ("Full de dades"). Activeu DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) End Sub 

Pas 4: Ara afegiu un nou full de treball al llibre.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Dim Variant Sheets ("Full de dades"). Activeu DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Fulls de treball.Afegeix End Sub 

Pas 5: Ara afegiu les dades al full recentment afegit mitjançant la funció Excel VBA UBOUND en forma del codi següent.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Com a fulls de dades variables ("Full de dades"). Activeu DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Fulls de treball.Afegeix interval (ActiveCell) , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange End Sub 

El codi anterior compensarà les cel·les per la longitud màxima retornada per la funció UBOUND i aquest rang serà igual al valor del nom de la matriu "DataRange

Pas 6: Ara executeu aquest codi que enganxarà el valor al full nou.

Aquest codi és dinàmic perquè fins i tot quan les dades augmenten horitzontalment i verticalment, automàticament prendrà l'abast. Ara afegiré algunes línies falses a les dades.

Ara tornaré a executar aquest codi, ara també afegiré les línies acabades d'afegir.

Codi:

 Sub Ubound_Example2 () Dim DataRange () Com a fulls de dades variables ("Full de dades"). Activeu DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Fulls de treball.Afegeix interval (ActiveCell) , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub 

Coses que cal recordar

  • UBOUND retorna la longitud màxima de la matriu.
  • La matriu comença des de 0, no des de 1.
  • Si voleu obtenir el valor inferior de la matriu, haureu d’utilitzar VBA LBOUND.
  • Si la matriu té més d'una dimensió, també heu d'especificar el número de dimensió.