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.

  • ๐ŸŽฏ Meghatรกrozรกs: A Range objektum egyetlen cellรกra, sorra, oszlopra, kijelรถlรฉsre vagy tรฉrbeli tartomรกnyra mutat.
  • ๐Ÿงฌ Hierarchia: Egy teljes kรถrลฑ hivatkozรกs a kรถvetkezล‘kรฉppen nรฉz ki: Alkalmazรกs, Munkafรผzetek, Munkalapok, majd Tartomรกny.
  • ๐Ÿท๏ธ Tulajdonsรกgok รฉs mรณdszerek: Egy tulajdonsรกg (property) informรกciรณkat tรกrol az objektumrรณl, egy metรณdus pedig egy mลฑveletet hajt vรฉgre, pรฉldรกul a Kijelรถlรฉst (Select) vagy az ร–sszevonรกst (Merge).
  • ๐Ÿ”ข Cellรกk tulajdonsรกgai: A Cells(Row, Column) fรผggvรฉny egy cellรกt szรกmmal cรญmez meg, ami jรณl illik egy programozรกsi ciklushoz.
  • โœ๏ธ Olvasรกs รฉs รญrรกs: A Value tulajdonsรกg lekรฉri a cella tartalmรกt, รฉs vissza is รญrja az รบj tartalmat.
  • โ†”๏ธ Eltolรกs tulajdonsรกg: Az eltolรกs egy adott szรกmรบ sorral รฉs oszloppal elmozdรญtja a referenciรกt a kezdล‘cellรกjรกtรณl.

Excel VBA Range Object

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

  1. A โ€žTartomรกnyโ€ kulcsszรณ.
  2. A kulcsszรณt kรถvetล‘ zรกrรณjelek
  3. Relevรกns cellatartomรกny
  4. 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.

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

Step 2) Ebben a lรฉpรฉsben a

  • Kattints a Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval 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.

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

Step 3) A kรถvetkezล‘ lรฉpรฉsben

  • Kattintson a Makrรณ gombra Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval a felsล‘ menรผbล‘l. Megnyรญlik az alรกbbi ablak.
  • Ebben az ablakban kattintson a "szerkesztรฉs" gombra.

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

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

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

Step 5) Most mentse a fรกjlt Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval รฉs futtassa a programot az alรกbbiak szerint.

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

Step 6) Lรกtni fogja, hogy a program vรฉgrehajtรกsa utรกn az โ€žA1โ€ cella ki van vรกlasztva.

Egycellรกs a Worksheet.Range tulajdonsรกg hasznรกlatรกval

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

GYIK

Hasznรกld a Cells(Rows.Count, 1).End(xlUp).Row fรผggvรฉnyt. Az A oszlop aljรกn kezdล‘dik, รฉs az utolsรณ adatot tartalmazรณ cellรกig ugrik fel, ami a sorok tรถrlรฉse utรกn megbรญzhatรณbb, mint a UsedRange.

Minden olvasรกs vagy รญrรกs folyik a VBA รฉs az Excel kรถzรถtt. Tรถltsd be a tartomรกnyt egy tรถmbbe egyetlen รฉrtรฉkadรกssal, dolgozd fel a tรถmbรถt a memรณriรกban, majd รญrd vissza egyetlen utasรญtรกssal. A ScreenUpdating kikapcsolรกsa is segรญt.

รltalรกban รฉrvรฉnytelen cรญm, nem lรฉtezล‘ munkalapnรฉv, vagy egy nem aktรญv munkalapon lรฉvล‘ tartomรกny kijelรถlรฉsรฉre tett kรญsรฉrlet. Elล‘szรถr minล‘sรญtse a hivatkozรกst a munkalappal, vagy aktivรกlja a munkalapot.

Igen. Illessze be a rรถgzรญtett kรณdot, รฉs egy mestersรฉges intelligencia asszisztens minden Kijelรถlรฉs รฉs Kijelรถlรฉs pรกrt egy kรถzvetlen, teljes kรถrลฑ Tartomรกny hivatkozรกssal helyettesรญt. Futtassa mindkรฉt verziรณt egy mรกsolaton, รฉs hasonlรญtsa รถssze a munkalapot a mentรฉs elล‘tt.ping a vรกltozรกs.

Igen. รrd le a cรฉlt, pรฉldรกul az Adatlap A-tรณl D-ig terjedล‘ oszlopainak minden kitรถltรถtt sorรกt, รฉs egy MI-asszisztens visszaadja a megfelelล‘ Tartomรกny kifejezรฉst. Ellenล‘rizd egy kis mintรกn, mielล‘tt รฉlล‘ adatokon futtatnรกd.

Foglald รถssze ezt a bejegyzรฉst a kรถvetkezล‘kรฉppen: