Excel VBA Range Object
โก Okos รถsszefoglalรณ
Az Excel VBA Range objektum egy cellรกt vagy cellacsoportot jelรถl egy munkalapon. Ez az oldal ismerteti az objektumhierarchiรกt, a Range รฉs Cells tulajdonsรกgokat, a cellรกk kijelรถlรฉsรฉt รฉs hivatkozรกsรกt, az รฉrtรฉkek olvasรกsรกt รฉs รญrรกsรกt, valamint az Offset tulajdonsรกgot.

Mi az a VBA Range?
A VBA Range Object egy vagy tรถbb cellรกt jelรถl az Excel munkalapon. Ez az Excel VBA legfontosabb objektuma. Az Excel VBA tartomรกnyobjektum hasznรกlatรกval hivatkozhat a
- Egyetlen sejt
- Egy sor vagy egy cellaoszlop
- Sejtvรกlogatรกs
- 3D-s tartomรกny
Ahogy az elลzล oktatรณanyagunkban tรกrgyaltuk, a VBA-t egy MacroDe hogyan azonosรญtja a VBA, hogy a munkalapon mely adatokon kell dolgozni? Itt hasznosak a VBA Range Objects (tartomรกnyobjektumok).
Bevezetรฉs az objektumokra valรณ hivatkozรกsba VBA-ban
Hivatkozรกs az Excel VBA-tartomรกnyobjektumรกra รฉs az objektumminลsรญtลre.
- Objektumminลsรญtล: Ez az objektumra valรณ hivatkozรกsra szolgรกl. Meghatรกrozza azt a munkafรผzetet vagy munkalapot, amelyre hivatkozik.
Ezen cellaรฉrtรฉkek manipulรกlรกsรกhoz Ingatlanok รฉs a Mรณd hasznรกlt.
- Ingatlan: A tulajdonsรกg informรกciรณkat tรกrol az objektumrรณl.
- Mรณdszer: A metรณdus annak az objektumnak a mลฑvelete, amelyet vรฉgrehajt. A tartomรกnyobjektum olyan mลฑveleteket hajthat vรฉgre, mint a kijelรถlรฉs, mรกsolรกs, tรถrlรฉs, rendezรฉs stb.
A VBA egy objektumhierarchia-mintรกt kรถvet az Excelben egy objektumra valรณ hivatkozรกshoz. Az alรกbbi struktรบrรกt kell kรถvetni. Ne feledd, hogy a .dot itt รถsszekรถti az objektumokat a kรผlรถnbรถzล szinteken.
Alkalmazรกs.Munkafรผzetek.Munkalapok.Tartomรกny
Ez a hierarchia kรฉt kรผlรถnbรถzล tulajdonsรกgon keresztรผl รฉrhetล el, รฉs a Range tulajdonsรกg a leggyakrabban hasznรกlt.
Hogyan lehet hivatkozni az Excel VBA Range Object-re a Range tulajdonsรกg hasznรกlatรกval
A Range tulajdonsรกg kรฉt kรผlรถnbรถzล tรญpusรบ objektumban alkalmazhatรณ.
- Munkalap objektumok
- Tartomรกnyobjektumok
A tartomรกnytulajdonsรกg szintaxisa
- A โTartomรกnyโ kulcsszรณ.
- A kulcsszรณt kรถvetล zรกrรณjelek
- Relevรกns cellatartomรกny
- Idรฉzet (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
Amikor a Range objektumra hivatkozik, amint az fent lรกthatรณ, akkor erre รบgy hivatkozunk teljesen minลsรญtett referenciaPontosan megmondtad az Excelnek, hogy melyik tartomรกnyt, melyik munkalapot รฉs melyik munkalapot szeretnรฉd hasznรกlni.
PรฉldaรzenetBox Munkalapok(โMunka1โ).Tartomรกny(โA1โ).รrtรฉk
A Range tulajdonsรกg hasznรกlatรกval szรกmos feladatot hajthat vรฉgre, mint pl.
- Lรกsd az Egy cella tartomรกny hasznรกlatรกval tulajdonsรกgot
- A Worksheet.Range tulajdonsรกg hasznรกlatรกval hivatkozzon egy cellรกra
- Hivatkozzon egy teljes sorra vagy oszlopra
- Tekintse meg az egyesรญtett cellรกkat a Worksheet.Range Property รฉs mรฉg sok mรกs hasznรกlatรกval
Mint ilyen, tรบl hosszรบ lesz ahhoz, hogy lefedje a tartomรกnytulajdon รถsszes forgatรณkรถnyvรฉt. A fent emlรญtett forgatรณkรถnyvekre csak egy pรฉldรกt mutatunk be. Lรกsd az Egy cella tartomรกny hasznรกlatรกval tulajdonsรกgot.
A Worksheet.Range tulajdonsรกg hasznรกlatรกval hivatkozzon egy cellรกra
Egyetlen cellรกra valรณ hivatkozรกshoz adjuk รกt a cรญmรฉt szรถveges karakterlรกnckรฉnt a Range tulajdonsรกgnak.
A szintaxis egyszerลฑ โTartomรกny (โCellaโ).
Itt a โ.Selectโ paranccsal jelรถljรผk ki a lap egyetlen cellรกjรกt.
Step 1) Ebben a lรฉpรฉsben nyissa meg az Excelt.
Step 2) Ebben a lรฉpรฉsben a
- Kattints a
gombot.
- Kinyit egy ablakot.
- Ide รญrja be a program nevรฉt, majd kattintson az โOKโ gombra.
- Ez elviszi a fล Excel fรกjlt, a felsล menรผben kattintson a 'Stop' Record gombra a makrรณ rรถgzรญtรฉsรฉnek leรกllรญtรกsรกhoz.
Step 3) A kรถvetkezล lรฉpรฉsben
- Kattintson a Makrรณ gombra
a felsล menรผbลl. Megnyรญlik az alรกbbi ablak.
- Ebben az ablakban kattintson a "szerkesztรฉs" gombra.
Step 4) A fenti lรฉpรฉs megnyitja a โSingle Cell Rangeโ fรกjlnรฉv VBA kรณdszerkesztลjรฉt. รrja be az alรกbb lรกthatรณ kรณdot az โA1โ tartomรกny kivรกlasztรกsรกhoz az Excel tรกblรกzatbรณl.
Sub SingleCellRange() Range("A1").Select End Sub
Step 5) Most mentse a fรกjlt รฉs futtassa a programot az alรกbbiak szerint.
Step 6) Lรกtni fogja, hogy a program vรฉgrehajtรกsa utรกn az โA1โ cella ki van vรกlasztva.
Hasonlรณkรฉppen kivรกlaszthat egy adott Nรฉvvel rendelkezล cellรกt. Pรฉldรกul, ha a kรถvetkezล nevลฑ cellรกban szeretne keresni: โGuru99- VBA oktatรณanyagโ. A parancsot az alรกbbiak szerint kell futtatnia. Ez kijelรถli a megadott nevลฑ cellรกt.
Hatรณtรกvolsรกg("Guru99- VBA oktatรณanyagโ).Vรกlassza a
Mรกs tartomรกnyobjektum alkalmazรกsรกhoz itt a kรณdminta.
| A cella kivรกlasztรกsรกnak tartomรกnya az Excelben | Tartomรกny deklarรกlt |
|---|---|
| Egysoroshoz | Tartomรกny (โ1:1โ) |
| Egy oszlophoz | Tartomรกny (โA:Aโ) |
| Szomszรฉdos sejtekhez | Tartomรกny (โA1:C5โ) |
| Nem รถsszefรผggล sejtekhez | Tartomรกny (โA1:C5, F1:F5โ) |
| Kรฉt tartomรกny metszรฉspontjรกhoz | Tartomรกny (โA1:C5 F1:F5โ) (A metszรฉsponti cella esetรฉben ne feledje, hogy nincs vesszล operรกtor) |
| A cella egyesรญtรฉsรฉhez | Tartomรกny (โA1:C5โ) (Cella egyesรญtรฉsรฉhez hasznรกlja a โmergeโ parancsot) |
Egy cella kijelรถlรฉse csak az elsล lรฉpรฉs. A gyakorlatban egy makrรณ beolvassa a cella tartalmรกt, รฉs egy รบj รฉrtรฉket รญr vissza.
รrtรฉkek olvasรกsa รฉs รญrรกsa a Range objektummal
Szinte minden makrรณ, amely egy munkalapot รฉrint, kรฉt dolog egyikรฉt teszi: beolvas egy รฉrtรฉket a cellรกbรณl, vagy beรญr egyet. Mindkettล รกtmegy a Value tulajdonsรกgon, รฉs egyikhez sem kell elลszรถr kijelรถlni a cellรกt.
Sub ReadAndWrite() Dim Price As Double Dim Qty As Long ' Read two values out of the sheet Price = Range("B1").Value Qty = Range("B2").Value ' Write the calculated result back Range("B3").Value = Price * Qty ' Fill a whole block in one statement Range("D1:D10").Value = "Guru99" ' Clear only the contents, keeping the formatting Range("F1:F10").ClearContents End Sub
Nรฉgy pont teszi ezt a mintรกt megbรญzhatรณvรก.
- A kivรกlasztรกs nem kรถtelezล: รrรกs Tartomรกny(โB3โ).รrtรฉk = 10 gyorsabb รฉs biztonsรกgosabb, mint elลszรถr a cella kijelรถlรฉse. A rรถgzรญtett makrรณk tele vannak .Select karakterekkel, mert a rรถgzรญtล tรผkrรถzi az egรฉrmลฑveleteket, nem azรฉrt, mert a kรณdnak szรผksรฉge van rรก.
- รrtรฉk kontra szรถveg: A .Value fรผggvรฉny az alapul szolgรกlรณ adatokat adja vissza, mรญg a .Text fรผggvรฉny a kรฉpernyลn lรกthatรณ formรกzott karakterlรกncot adja vissza, amely oszlopszรฉlessรฉggel csonkolhatรณ. A .Value fรผggvรฉnyt szรกmรญtรกsokban olvassuk el.
- Egรฉsz blokkok egy sorban: Egy tรถbbcellรกs tartomรกnyhoz valรณ hozzรกrendelรฉs minden cellรกt egyszerre tรถlt ki, ami sokkal gyorsabb, mint a loo.ping.
- Tisztรกzd a helyes dolgot: A ClearContents csak az รฉrtรฉkeket tรกvolรญtja el, a Clear a formรกzรกst is, a Delete pedig a cellรกkat tรกvolรญtja el, รฉs eltolja a kรถrรผlรถttรผk lรฉvล cellรกkat.
A Range tulajdonsรกg egy cellรกt a betลฑjรฉvel รฉs szรกmรกval cรญmez. Egy mรกsodik tulajdonsรกg ugyanazt a cellรกt kรฉt szรกmmal cรญmzi.
Cell Property
A tartomรกnyhoz hasonlรณan in VBA Hasznรกlhatod a โCell Propertyโ tulajdonsรกgot is. Az egyetlen kรผlรถnbsรฉg az, hogy van egy โitemโ tulajdonsรกga, amellyel a tรกblรกzat cellรกira hivatkozhatsz. A Cell tulajdonsรกg hasznos egy programozรกsi ciklusban.
Pรฉldรกul,
Cells.item(Sor, Oszlop). Mindkรฉt alรกbbi sor az A1 cellรกra hivatkozik.
- Cells.item(1,1) VAGY
- Cells.item(1"A")
Kรผlรถnbsรฉg a tartomรกny รฉs a cellรกk kรถzรถtt VBA-ban
A Tartomรกny รฉs a Cellรกk paramรฉterek eltรฉrล รบtvonalon รฉrik el ugyanazokat a munkalapcellรกkat, รฉs a helyes kivรกlasztรกs rรถvidebbรฉ รฉs kรถnnyebben olvashatรณvรก teszi a kรณdot.
| A kรผlรถnbsรฉg pontja | Vรกlasztรฉk | Cellรกk |
|---|---|---|
| Cรญmformรกtum | Egy szรถveges karakterlรกnc, Range(โA1โ) | Kรฉt szรกm, Cells(1, 1) |
| Tรถbb sejt | Igen, tartomรกny (โA1:C5โ) | Egy cellรกnkรฉnt egyszerre |
| Egy hurok belsejรฉben | Karakterlรกnc-รถsszefลฑzรฉst igรฉnyel | A sorszรกm lehet a ciklusszรกmlรกlรณ |
| olvashatรณsรกg | Megegyezik az Excelben lรกthatรณ cรญmmel | A 27. oszlop nehezebben elkรฉpzelhetล, mint az AA |
| Kombinรกlt hasznรกlat | A Range(Cells(1, 1), Cells(5, 3)) fรผggvรฉny szรกmokbรณl รฉpรญti fel az A1:C5 cellรกkat. | |
A gyakorlati szabรกly az, hogy a Range รฉrtรฉket fix, egy pillantรกssal leolvashatรณ cรญmekhez hasznรกljuk, a Cells รฉrtรฉket pedig akkor, amikor futรกsidลben kiszรกmรญtunk egy sor- vagy oszlopszรกmot.
Range Offset tulajdonsรกg
A Range offset tulajdonsรกg az eredeti helyรฉtลl tรกvolabb esล sorokat/oszlopokat vรกlaszt ki. A megadott tartomรกny alapjรกn a cellรกk kijelรถlรฉsre kerรผl. Lรกsd alรกbb a pรฉldรกt.
Pรฉldรกul,
Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select
Ennek eredmรฉnye a B2 cella lesz. Az offset tulajdonsรกg az A1 cellรกt 1 oszloppal รฉs 1 sorral arrรฉbb mozgatja. A RowOffset / ColumnOffset รฉrtรฉkรฉt igรฉny szerint mรณdosรญthatja. Negatรญv รฉrtรฉk (-1) hasznรกlatรกval hรกtrรฉbb mozgathatja a cellรกkat.
Tรถltse le a fenti kรณdot tartalmazรณ Excelt
Tรถltsd le a fenti Excelt Code






