VBA kötött - Az Excel VBA UBound funkció használata (példák)

Tartalomjegyzék:

Anonim

Excel VBA hátralevő funkció

Milyen gyakran lép fel olyan helyzet, amikor meg kell említeni az Excel alkalmazásával működő tömb adatok maximális hosszát vagy felső határát? A legtöbb alkalommal, igaz? És hogyan találja meg ugyanezt? Talán a legtöbb esetben manuálisan. Azonban automatizálhatja és megkaphatja a tömb maximális hosszát vagy felső korlátját a UBound nevű VBA függvény segítségével.

Sőt, ez a legszebb módja annak, hogy végigmenjen. Például, ha For tömböt használ a tömbben, akkor határozottan meg akarja vonni a tömb összes elemét. Ebben az esetben unalmas feladat volna a felső határ kézi megismerése és a hurokban történő megemlítése. Ez csökkenti a kód általános jellegét is. Ezért a VBA UBound funkció nagyon hasznos ilyen esetekben.

A UBound a felső korlátot jelenti, és megadja a tömb felső korlátját vagy maximális hosszát az Excel VBA-ban.

Képlet a kimenő funkcióhoz az Excel VBA-ban

Az Excel VBA UBound függvény a következő szintaxissal rendelkezik.

 UBound (tömbnév (, dimenzió)) 

Hol,

  • Tömbnév: A definiált tömb neve. Ez az érv kötelező / kötelező érv.
  • Dimenzió: Opcionális argumentum, amely meghatározza a tömb méretét. Legyen szó egydimenziós, kétdimenziós vagy többdimenziós tömbről. Alapértelmezés szerint az egydimenziós tömböt veszi fel, ha nincs megadva.

Mivel ennek a funkciónak csak két érve van, sokkal könnyebb megjegyezni ennek a függvénynek a szintaxisát.

Hogyan kell használni az Excel VBA UBound funkciót?

Megtanuljuk, hogyan kell használni a VBA UBound funkciót néhány példával az Excelben.

Itt letöltheti ezt a VBA UBound Excel sablont - VBA UBound Excel sablon

1. példa - VBA kötött egydimenziós tömbtel

Kövesse az alábbi lépéseket a UBound funkció használatához a VBA-ban.

1. lépés: A Fejlesztő lapon kattintson a Visual Basic- re a VB szerkesztő megnyitásához.

2. lépés: Kattintson a Beszúrás elemre, és válassza a Modul fület, hogy új üres modult adjon a VBE-hez.

3. lépés: A VBE-ben kezdje el írni a makrót, és határozza meg a változó nevét.

Kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) String End Sub 

Itt az IndiaCity változó 5 elemmel van definiálva. A változó típusa egy karakterlánc.

Megjegyzés: A tömb 0-nál kezdődik (nulla). Ezért ez a tömb 5 elemből áll.

4. lépés: Rendeljen értékeket a tömb elemekhez.

Kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "Befejezés Sub 

Itt a zeroth elem értéke „Mumbai”, az első elem értéke „Bengaluru”, és így tovább.

5. lépés: Használja az UBound funkciót az MsgBox-tal együtt, hogy megkapja a tömb felső korlátját.

Kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" A tömb felső korlátja: "& UBound (IndiaCity) End Sub 

6. lépés: Futtassa ezt a kódot az F5-ös közvetlen megnyomásával vagy a bal felső panelen lévő Futtatás gomb manuális megütésével. Egy üzenőmező jelenik meg a következő üzenettel: „ A tömb felső korlátja: 4 ”.

Felhívjuk figyelmét, hogy a UBound funkció nem találja meg a Array elemeinek felső határát. Csak megtudja a tömbben lévő elemek maximális számát.

2. példa - VBA kötött kétdimenziós tömbtel

Kövesse az alábbi lépéseket a UBound funkció használatához a VBA-ban.

1. lépés: Adjon meg egy változót, amely képes tárolni a kétdimenziós adatokat.

Kód:

 Sub TwoDm_UBound () Dim Array_Test (0 - 6, 1 - 8) mint karakterlánc vége Sub 

2. lépés: Adjon meg egy új változót az Üzenet számára, és használja azt az MsgBox alatt. Ez a változó segít nekünk a két méret felső határának egyszerre kinyomtatásában.

Kód:

 Sub TwoDm_UBound () Dim Array_Test (0-tól 6-ig, 1-től 8-ig) String Dim üzenetként MsgBox üzenet vége Sub 

3. lépés: Most próbálkozzon a következő állításokkal, amelyek lehetővé teszik a rendszer számára, hogy a tömb mindkét dimenzióját ugyanazon üzenet mezőbe nyomtassa.

Kód:

 Sub TwoDm_UBound () Dim Array_Test (0-tól 6-ig, 1-től 8-ig) Mint String Dim Message Message = "Az első dimenzió felső korlátja:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "A második dimenzió felső korlátja: : "& UBound (Array_Test, 2) & vbCrLf MsgBox üzenet vége al 

A fenti kódban említett két állítás lehetővé teszi a rendszer számára, hogy mindkét méretet kinyomtassa ugyanabban az üzenet mezőben. Az első utasítás az Message változóban tárolja az első dimenzió felső határának értékét, és véget vet a sornak (vbCrLf). A második utasítás hozzáadja az Üzenet változóhoz rendelt első értéket, és egyesíti azt a második dimenzió felső határával egy felbukkanó üzenettel.

Mivel a vbCrLf-et mindkét állításban használják, új sorként / kocsiként működik itt, mindkét állításban.

4. lépés: Futtassa a kódot az F5 vagy a Futtatás gomb megnyomásával, és nézze meg a kimenetet.

Hasonló vonalakon több dimenzióig is mehetünk, és megnézhetjük mindegyikük felső határát.

3. példa - UBound funkció az adat automatikus frissítéséhez a lapon

Tegyük fel, hogy van egy adatkészlet, amint az a képernyőképen látható.

Ezek az adatok frissülnek, és időről időre meg kell másolni a frissített adatokat. Most nagyon unalmas feladat az, hogy mindig ellenőrizze az adatok frissítését, majd másolja az új lapra. Nagyon sok időt vesz igénybe. Megpróbálhatjuk automatizálni UBound funkcióval a VBA-ban? Lássuk.

Kövesse az alábbi lépéseket a lapon szereplő adatok automatikus frissítéséhez a VBA UBound funkcióval:

1. lépés: Határozzon meg egy változót egy makró létrehozásával.

Kód:

 Sub Ex3_UBound () Dim DataUpdate () Variant End Sub 

2. lépés: Aktiválja az adatokat tartalmazó munkalapot. Ebben az esetben a lap neve „ Data ”.

Kód:

 Sub Ex3_UBound () Dim DataUpdate () Variant Sheets ("Data"). 

3. lépés: Rendelje meg a tartományt az éppen létrehozott változóval. Erre a célra aktív lapokat fogunk használni.

Kód:

 Sub Ex3_UBound () Dim DataUpdate () Variant Sheets ("Data") .Aktiválja DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) End Sub 

4. lépés: Adjon hozzá egy új munkalapot az Excel programjához, ahol a frissített adatok másolhatók és beilleszthetők.

Kód:

 Sub Ex3_UBound () Dim DataUpdate () Variant Sheets ("Data") .Aktiválja a DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add End Sub lehetőséget. 

5. lépés: Most használja az alábbi kódot, amely lehetővé teszi az „Adat” lapon lévő adatok automatikus másolását és beillesztését az újonnan létrehozott Excel lapba.

Kód:

 Sub Ex3_UBound () Dim DataUpdate () Variant Sheets ("Data"). Aktiválja a 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 

A fenti kód ellensúlyozza a cellákat az „Adat” lap felől a felső határáig, amelyeket a használt UBound funkcióval lehet elérni, és a tartományt a DataUpdate változóhoz rendeli.

6. lépés: Futtassa a kódot az F5 vagy a Futtatás gomb megnyomásával, és nézze meg a kimenetet.

Mint láthatja, egy új lap került hozzáadásra az Excel munkafüzetbe, ahol az „Adat” lap összes adatát automatikusan lemásolja.

Ez egy dinamikus kód. Amit azt akarom mondani, hogy dinamikus, bár bár oszlopokra és sorokra felveszem, automatikusan lemásolódik egy új lapra.

7. lépés: Adjunk hozzá néhány sort és oszlopot az adatokhoz, és nézzük meg, valóban működik-e.

8. lépés: Az adatlap frissítése után nyomja meg ismét a Futtatás gombot, és nézze meg a varázslatot.

Ha láthatja, egy új lapot (színes) adnak hozzá, és egy új Age oszlopot, valamint két új sort is hozzáadnak a laphoz. Ez azt jelenti, hogy bármit is frissítsünk a törzsfájlban (Data), ez a kód automatikusan mindent átmásol, és beilleszt egy új lapba.

Dolgok, amikre emlékezni kell

  • A UBound egy tömb felső korlátját / maximális hosszát adja meg, és nem a tömbben lévő adatpontok felső határát.
  • A tömb mindig a 0. pozícióból indul, párhuzamosan a legtöbb programozási nyelvvel, például C, C ++, Python.
  • Ha tömbje többdimenziós, akkor meg kell határoznia a dimenziós argumentumot is, amely numerikus egész értékeket vesz fel, mint például 1, 2, 3 stb. 1 az egydimenziós, 2 a kétdimenziós és így tovább.

Ajánlott cikkek

Ez a VBA UBound Function útmutatója. Itt megvitatjuk az Excel VBA UBound Function használatát, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket -

  1. VBA osztott függvény példákkal
  2. Excel nagybetűs függvény
  3. VBA mérkőzés
  4. Mennyezeti funkció Excelben
  5. Hogyan kell használni a VBA munkalapokat?