Excel VBA Funcție UBound
Cât de des vă confruntați cu o situație în care trebuie să menționați lungimea maximă sau limita superioară a unui tablou de date care lucrează cu Excel? De cele mai multe ori, nu? Și cum găsești la fel? Poate manual de cele mai multe ori. Cu toate acestea, îl puteți automatiza și obține lungimea maximă sau limita superioară a unui tablou folosind o funcție VBA numită UBound.
Mai mult, are cea mai frumoasă modalitate de a se bucla. Cum ar fi, dacă utilizați o buclă For în tabloul dvs., ați dorit cu siguranță să conectați toate elementele tabloului. În acest caz, ar fi o treabă obositoare să descoperiți marginea superioară manual și să o menționați în buclă. De asemenea, va reduce generalitatea codului. Prin urmare, funcția VBA UBound este utilă în astfel de scenarii.
UBound reprezintă limita superioară și dă lungimea superioară sau maximă a tabloului în Excel VBA.
Formula pentru funcția UBound în Excel VBA
Excel VBA Funcția UBound are următoarea sintaxă.
UBound (numele Array (, dimensiunea))
Unde,
- Numele Array: Numele tabloulului pe care l-ați definit. Acest argument este un argument obligatoriu / obligatoriu.
- Dimensiune: argument opțional care specifică dimensiunea unui tablou. Fie că este vorba despre un tablou unidimensional, bidimensional sau multi-dimensional. În mod implicit, acesta va presupune matricea unidimensională dacă nu este specificat.
Deoarece această funcție are doar două argumente, devine mult mai ușor să ne amintim sintaxa acestei funcții.
Cum se utilizează funcția Excel VB UBound?
Vom învăța cum să folosiți o funcție VBA UBound cu câteva exemple în Excel.
Puteți descărca acest șablon Excel VB UBound aici - șablonul VBA UBound ExcelExemplul # 1 - VBA UBound cu o singură dimensiune
Urmați pașii de mai jos pentru a utiliza funcția UBound în VBA.
Pasul 1: în fila Dezvoltator faceți clic pe Visual Basic pentru a deschide VB Editor.
Pasul 2: Faceți clic pe Insert și selectați fila Module pentru a adăuga un nou modul gol la VBE.
Pasul 3: În VBE, începeți să scrieți macro-ul și definiți numele variabilei.
Cod:
Sub Onedm_Ubound () Dim IndiaCity (4) Ca String End Sub
Aici variabila IndiaCity este definită cu 5 elemente. Tipul variabilei este un șir.
Notă: Array pornește de la 0 (Zero). Prin urmare, acest tablou va consta din 5 elemente.Pasul 4: Alocați valori elementelor de matrice.
Cod:
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
Aici, elementul zeroth are o valoare atribuită ca „Mumbai”, Primul element are o valoare atribuită ca „Bengaluru” ș.a.
Pasul 5: Utilizați funcția UBound împreună cu MsgBox pentru a obține limita superioară pentru tablou.
Cod:
Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" Latura superioară pentru Array este: "& UBound (IndiaCity) End Sub
Pasul 6: Rulați acest cod apăsând direct F5 sau apăsând manual butonul Run din panoul din stânga sus. Va apărea o casetă cu mesajul „ Limita superioară pentru Array este: 4 ”.
Vă rugăm să rețineți că funcția UBound nu află limita superioară din elementele Array. Doar află numărul maxim de elemente deținute de tablou.
Exemplul # 2 - VBA UBound cu două dimensiuni Array
Urmați pașii de mai jos pentru a utiliza funcția UBound în VBA.
Pasul 1: Definiți o variabilă care poate conține date bidimensionale.
Cod:
Sub TwoDm_UBound () Dim Array_Test (0 până la 6, 1 până la 8) ca sub
Pasul 2: Definiți un nou mesaj variabil și folosiți-l sub MsgBox. Această variabilă ne va ajuta să imprimăm limitele superioare ale ambelor dimensiuni simultan.
Cod:
Sub TwoDm_UBound () Dim Array_Test (0 până la 6, 1 până la 8) Ca șir de caractere Dim Mesaj MsgBox Message End Sub
Pasul 3: Încercați următoarele afirmații care permit sistemului să imprime ambele dimensiuni ale tabloului sub aceeași casetă de mesaj.
Cod:
Sub TwoDm_UBound () Dim Array_Test (0 până la 6, 1 până la 8), deoarece șirul Dim Message Message = "Limită superioară pentru prima dimensiune este:" & UBound (Array_Test, 1) & vbCrLf Message = Mesaj & "Limita superioară pentru a doua dimensiune este : "& UBound (Array_Test, 2) & vbCrLf MsgBox Sub Mesaj final
Cele două declarații menționate în codul de mai sus permit sistemului să imprime ambele dimensiuni în aceeași casetă de mesaje. Prima instrucțiune stochează valoarea legăturii superioare pentru prima dimensiune în mesajul variabil și încheie linia (vbCrLf). A doua declarație adaugă prima valoare atribuită variabilului Mesaj și o combină cu limita superioară a celei de-a doua dimensiuni cu un mesaj pop-up.
Deoarece vbCrLf este utilizat în ambele instrucțiuni, funcționează ca returnare newline / carriage aici în ambele instrucțiuni.
Pasul 4: Rulați codul apăsând butonul F5 sau Run și vedeți ieșirea.
Pe linii similare, putem merge până la mai multe dimensiuni și vom vedea limita superioară pentru fiecare dintre ele.
Exemplul nr. 3 - Funcție UBound pentru actualizarea automată a datelor din fișă
Să presupunem că aveți un set de date așa cum se arată în imaginea de mai jos.
Aceste date sunt actualizate și trebuie să copiați datele actualizate din când în când. Acum, este cu adevărat o treabă obositoare să verifici întotdeauna actualizările de date și apoi să le copiezi în noua foaie. Se consumă foarte mult timp. Putem încerca să o automatizăm folosind funcția UBound în VBA? Sa vedem.
Urmați pașii de mai jos pentru a actualiza automat datele din foaie folosind funcția VBA UBound:
Pasul 1: Definiți o variabilă prin crearea unei macro-uri.
Cod:
Sub Ex3_UBound () Dim DataUpdate () Sub variante End Sub
Pasul 2: Activați foaia de lucru care conține datele dvs. În acest caz, foaia este „ Date ”.
Cod:
Sub Ex3_UBound () Dim DataUpdate () sub formă de foi variante („Date”).
Pasul 3: Alocați intervalul variabilei pe care tocmai am creat-o. Vom folosi intervalul de foi activate în acest scop.
Cod:
Sub Ex3_UBound () Dim DataUpdate () Ca foi de variante ("Date"). Activare DataUpdate = Interval ("A2", Range ("A1"). End (xlDown). End (xlToRight)) End Sub
Pasul 4: Adăugați o nouă foaie de lucru în Excel, unde datele actualizate pot fi copiate și lipite.
Cod:
Sub Ex3_UBound () Dim DataUpdate () Ca foi de variante ("Date"). Activare DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight))
Pasul 5: Acum, utilizați linia de cod de mai jos care permite copierea datelor din foaia „Date” și lipirea automată într-o foaie excel recent creată.
Cod:
Sub Ex3_UBound () Dim DataUpdate () sub formă de foi de variante ("Date"). Activare DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub
Codul de mai sus va compensa celulele din foaia „Date” până la limita superioară care poate fi obținută prin funcția UBound folosită și atribuie intervalul variabilei DataUpdate.
Pasul 6: Rulați codul apăsând butonul F5 sau Run și vedeți ieșirea.
După cum puteți vedea, în cartea de lucru Excel se adaugă o nouă foaie în care toate datele din foaia „Date” sunt copiate automat.
Acesta este un cod dinamic. Ceea ce vreau să spun că este dinamic este că, deși adaug în rândul coloanelor și al rândurilor, acesta va fi automat copiat într-o nouă foaie.
Pasul 7: Să adăugăm câteva rânduri și coloane la date și să vedem dacă funcționează de fapt.
Pasul 8: Apăsați din nou pe butonul Executare, după ce foaia de date este actualizată și vedeți magia.
Dacă puteți vedea, se adaugă o foaie nouă (colorată) și o nouă coloană Age, împreună cu două rânduri noi se adaugă și în acea foaie. Înseamnă, orice am actualiza în fișierul principal (Date), acest cod va copia automat totul din acel lucru și îl va lipi într-o foaie nouă.
Lucruri de amintit
- UBound oferă lungimea superioară / maximă a unui tablou și nu limita superioară din punctele de date prezente într-un tablou.
- Matricea începe întotdeauna de la a 0- a poziție, în paralel cu majoritatea limbajelor de programare, cum ar fi C, C ++, Python.
- Dacă matricea dvs. este multidimensională, trebuie să specificați și argumentul dimensiunii care ia valori întregi numerice precum 1, 2, 3, etc.
Articole recomandate
Acesta este un ghid pentru funcția VBA UBound. Aici vom discuta despre cum să utilizați funcția Excel VBA UBound împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -
- Funcție de divizare VBA cu exemple
- Funcție cu majuscule Excel
- Meciul VBA
- Funcția de ÎNCHIRIERE în Excel
- Cum se utilizează foi de lucru VBA?