Jelenleg nem kapcsolódik az internethez. Várakozás a kapcsolat helyreállítására

Cellák/tartományok kijelölése az Excel programban Visual Basic-eljárások használatával

Az Office 2003 támogatása megszűnt

A Microsoft 2014. április 8-án megszüntette az Office 2003 terméktámogatását. Ez a változás kihatással van a szoftverfrissítésekre és a biztonsági beállításokra. Megtudhatja, hogy ez milyen következményekkel jár és hogyan tarthatja fenn rendszere védelmét.

További információ
A Microsoft csak szemléltetési célból ad közre programozási példákat, és azokra sem közvetlen, sem közvetett jótállást nem vállal, beleértve többek között a forgalomba hozhatóságot és az adott célra való megfelelőséget is. A cikk feltételezi, hogy az olvasó jártas a bemutatott programozási nyelvben, valamint az eljárások létrehozására és a velük kapcsolatos hibakeresésre szolgáló eszközök használatában. A Microsoft támogatási szakemberei segítséget nyújthatnak egy-egy adott eljárás funkciójának megértésében, de funkcióbővítési célból nem módosítják a példákat, és nem készítenek az egyéni igényeknek megfelelő eljárásokat. A cikkben szereplő példák az alábbi táblázatban felsorolt Visual Basic metódusokat használják.
   Metódus             Argumentumok   ------------------------------------------   Activate           nincs   Cells              rowIndex, columnIndex   Application.Goto   reference, scroll   Offset             rowOffset, columnOffset   Range              cell1                      cell1, cell2   Resize             rowSize, columnSize   Select             nincs   Sheets             index (vagy sheetName)   Workbooks          index (vagy bookName)   End                direction   CurrentRegion      nincs				
A cikkben szereplő példák az alábbi táblázatban felsorolt tulajdonságokat használják.
   Tulajdonság         Felhasználás   ---------------------------------------------------------------------   ActiveSheet      az aktív munkalap megadása   ActiveWorkbook   az aktív munkafüzet megadása   Columns.Count    az oszlopok megszámolása a megadott elemben   Rows.Count       a sorok megszámolása a megadott elemben   Selection        hivatkozás az aktuálisan kijelölt tartományra				

1: Cella kijelölése az aktív munkalapon

Az aktív munkalap D5 cellájának kijelölésére az alábbi példák bármelyike használható:
ActiveSheet.Cells(5, 4).Select				
– vagy –
ActiveSheet.Range("D5").Select				

2: Cella kijelölése ugyanazon munkafüzet egy másik munkalapján

Ugyanazon munkafüzet egy másik munkalapján található E6 cella kijelölésére az alábbi példák bármelyike használható:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)				
   – vagy –				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))				
Aktiválhatja is a munkalapot, majd a fenti 1. metódus segítségével kijelölheti a cellát:
Sheets("Sheet2").ActivateActiveSheet.Cells(6, 5).Select				

3: Cella kijelölése egy másik munkafüzet valamely munkalapján

Egy másik munkafüzetben található munkalap F7 cellájának kijelölésére az alábbi példák bármelyike használható:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)				
– vagy –
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")				
Aktiválhatja is a munkalapot, majd a fenti 1. metódus segítségével kijelölheti a cellát:
Workbooks("BOOK2.XLS").Sheets("Sheet1").ActivateActiveSheet.Cells(7, 6).Select				

4: Cellatartomány kijelölése az aktív munkalapon

Az aktív munkalap C2:D10 tartományának kijelölésére az alábbi példák bármelyike használható:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select				
ActiveSheet.Range("C2:D10").Select				
ActiveSheet.Range("C2", "D10").Select				

5: Cellatartomány kijelölése ugyanazon munkafüzet egy másik munkalapján

Ugyanazon munkafüzet egy másik munkalapján található D3:E11 tartomány kijelölésére az alábbi példák bármelyike használható:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")				
Aktiválhatja is a munkalapot, majd a fenti 4. metódus segítségével kijelölheti a tartományt:
Sheets("Sheet3").ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select				

6: Cellatartomány kijelölése egy másik munkafüzet valamely munkalapján

Egy másik munkafüzetben található munkalap E4:F12 tartományának kijelölésére az alábbi példák bármelyike használható:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")				
Application.Goto _      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")				
Aktiválhatja is a munkalapot, majd a fenti 4. metódus segítségével kijelölheti a tartományt:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select				

7: Elnevezett tartomány kijelölése az aktív munkalapon

Az aktív munkalap „Teszt” elnevezett tartományának kijelölésére az alábbi példák bármelyike használható:
Range("Teszt").Select				
Application.Goto "Teszt"				

8: Elnevezett tartomány kijelölése ugyanazon munkafüzet egy másik munkalapján

Ugyanazon munkafüzet egy másik munkalapján található „Teszt” elnevezett tartomány kijelölésére az alábbi példa használható:
Application.Goto Sheets("Sheet1").Range("Teszt")				
Aktiválhatja is a munkalapot, majd a fenti 7. metódus segítségével kijelölheti az elnevezett tartományt:
Sheets("Sheet1").ActivateRange("Teszt").Select				

9: Elnevezett tartomány kijelölése egy másik munkafüzet valamely munkalapján

Egy másik munkafüzetben található munkalap „Teszt” elnevezett tartományának kijelölésére az alábbi példa használható:
Application.Goto _   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Teszt")				
Aktiválhatja is a munkalapot, majd a fenti 7. metódus segítségével kijelölheti az elnevezett tartományt:
Workbooks("BOOK2.XLS").Sheets("Sheet2").ActivateRange("Teszt").Select				

10: Cella kijelölése az aktív cellához viszonyítva

Az aktív cellától öt sorral lefelé és négy oszloppal balra található cella kijelölésére a következő példa használható:
ActiveCell.Offset(5, -4).Select				
Az aktív cellától két sorral felfelé ás három oszloppal jobbra található cella kijelölésére a következő példa használható:
ActiveCell.Offset(-2, 3).Select				
Megjegyzés: A program hibát jelez, ha a „munkalapon kívüli” cellát próbál meg kijelölni. A fent bemutatott első példa hibát fog eredményezni, ha az aktív cella az A-D oszlopok valamelyikében található, mivel a négy oszloppal balra történő mozgás az aktív cellát érvénytelen cellapozícióba helyezné.

11: Cella kijelölése másik (nem az aktív) cellához viszonyítva

A C7 cellától öt sorral lefelé és négy oszloppal jobbra található cella kijelölésére a következő példák bármelyike használható:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select				
ActiveSheet.Range("C7").Offset(5, 4).Select				

12: Adott tartományból eltolt cellatartomány kijelölése

Annak a cellatartománynak a kijelölésére, amely a „Teszt” elnevezett tartománnyal megegyező méretű, de attól négy sorral lefelé és három oszloppal jobbra található, az alábbi példa használható:
ActiveSheet.Range("Teszt").Offset(4, 3).Select				
Ha az elnevezett tartomány egy másik (nem az aktív) munkalapon található, először aktiválja a munkalapot, majd jelölje ki a tartományt az alábbi példa segítségével:
Sheets("Sheet3").ActivateActiveSheet.Range("Teszt").Offset(4, 3).Select				

13: Adott tartomány kijelölése és a kijelölés átméretezése

Az „Adatbázis” elnevezett tartomány kijelölésére és a kijelölés öt sorral történő kiterjesztésére az alábbi példa használható:
Range("Adatbázis").SelectSelection.Resize(Selection.Rows.Count + 5, _   Selection.Columns.Count).Select				

14: Adott tartomány kijelölése, eltolása, majd átméretezése

Annak a tartománynak a kijelölésére, amely az „Adatbázis” elnevezett tartománytól négy sorral lefelé és három oszloppal jobbra található, majd az elnevezett tartománynál kettővel több sor és eggyel több oszlop belefoglalására az alábbi példa használható:
Range("Adatbázis").SelectSelection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _   Selection.Columns.Count + 1).Select				

15: Két vagy több adott tartomány uniójának kijelölése

A „Teszt” és a „Minta” elnevezett tartományok uniójának (vagyis az összesített területnek) a kijelölésére az alábbi példa használható:
Application.Union(Range("Teszt"), Range("Minta")).Select				
Vegye figyelembe, hogy a jelen példa csak akkor használható, ha a két tartomány ugyanazon a munkalapon található. Azt is tartsa szem előtt, hogy az Unió metódus sem működik munkalapok között. Ez a sor például jól működik:
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))				
de ez a sor
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))				
a következő hibaüzenetet adja vissza:
Az alkalmazásosztály Unió metódusa sikertelen

16: Két vagy több adott tartomány metszetének kijelölése

A „Teszt” és a „Minta” elnevezett tartományok metszetének kijelölésére az alábbi példa használható:
Application.Intersect(Range("Teszt"), Range("Minta")).Select				
Vegye figyelembe, hogy a jelen példa csak akkor használható, ha a két tartomány ugyanazon a munkalapon található.



A cikk 17-21-es számú példái a következő minta adatkészletre hivatkoznak. Minden példa azt feltételezi, hogy a mintaadatok cellatartománya van kijelölve.
   A1: Név    B1: Értékesítés    C1: Mennyiség   A2: a       B2: $10      C2: 5   A3: b       B3:          C3: 10   A4: c       B4: $10      C4: 5   A5:         B5:          C5:   A6: Összeg:   B6: $20      C6: 20				

17: Folyamatos adatoszlop utolsó cellájának kijelölése

Egy folyamatos oszlop utolsó cellájának kijelölésére az alábbi példa használható:
ActiveSheet.Range("a1").End(xlDown).Select				
Ha ezt a kódot a mintatáblával együtt használja, akkor az A4 cellát jelöli ki a rendszer.

18: Folyamatos adatoszlop alatt található üres cella kijelölése

Egy folyamatos cellatartomány alatti cella kijelölésére a következő példa használható:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select				
Ha ezt a kódot a mintatáblával együtt használja, akkor az A5 cellát jelöli ki a rendszer.

19: Adott oszlopban található, egymást követő cellák teljes tartományának kijelölése

Az adott oszlopban található, egymást követő cellák teljes tartomány kijelölésére a következő példák bármelyike használható:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select				
   – vagy –				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _      End(xlDown).Address).Select				
Ha ezt a kódot a mintatáblával együtt használja, akkor az A1–A4 cellákat jelöli ki a rendszer.

20: Adott oszlopban található, nem egymást követő cellák teljes tartományának kijelölése

Adott oszlopban található cellák nem egymást követő tartományának kijelölésére az alábbi példák bármelyike használható:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select				
   – vagy –				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _   End(xlUp).Address).Select				
Ha ezt a kódot a mintatáblával együtt használja, akkor az A1–A6 cellákat jelöli ki a rendszer.

21: Négyszögletű cellatartomány kijelölése

Egy adott cella körüli négyszögletes cellatartomány kijelölésére használja a CurrentRegion metódust. A CurrentRegion metódussal kijelölt tartomány egy olyan terület, amelyet üres sorok és oszlopok valamilyen kombinációja határol. Az alábbi példa a CurrentRegion metódus használatát mutatja be:
ActiveSheet.Range("a1").CurrentRegion.Select				
Ez a kód az A1–C4 cellákat jelöli ki. Az alábbiakban további példák láthatók ugyanezen cellatartomány kijelölésére:
ActiveSheet.Range("a1", _   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select				
   – vagy –				
ActiveSheet.Range("a1:" & _   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select				
Egyes esetekben előfordulhat, hogy az A1–A6 cellákat kívánja kijelölni. Ebben a példában a CurrentRegion metódus nem fog működni, mivel az 5. sor üres. Az alábbi példák az összes cellát kijelölik:
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select				
    – vagy –				
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1:" & _   ActiveSheet.Cells(lastRow, lastCol).Address).Select				

22. Nem egymást követő, eltérő hosszúságú oszlopok kijelölése

Eltérő hosszúságú, nem egymást követő oszlopok kijelöléséhez az alábbi mintatábla és makrópélda használható:
   A1: 1  B1: 1  C1: 1  D1: 1   A2: 2  B2: 2  C2: 2  D2: 2   A3: 3  B3: 3  C3: 3  D3: 3   A4:    B4: 4  C4: 4  D4: 4   A5:    B5: 5  C5: 5  D5:   A6:    B6:    C6: 6  D6:				
StartRange = "A1"EndRange = "C1"Set a = Range(StartRange, Range(StartRange).End(xlDown))Set b = Range(EndRange, Range(EndRange).End(xlDown))Union(a,b).Select				
Ha ezt a kódot a mintatáblával együtt használja, akkor az A1–A3 és a C1–C6 cellákat jelöli ki a rendszer.

MEGJEGYZÉSEK A PÉLDÁKKAL KAPCSOLATBAN

  • Az ActiveSheet tulajdonság általában kihagyható, mivel ha nem nevez meg munkalapot, a rendszer ezt használja. Például a következő helyett:
    ActiveSheet.Range("D5").Select						
    használható az alábbi:
    Range("D5").Select						
  • Az ActiveWorkbook tulajdonság általában szintén kihagyható. Ha nem nevez meg egy adott munkafüzetet, a rendszer az aktív munkafüzetet használja.
  • Ha az Application.Goto metódus használatakor két Cells metódust kíván használni a Range metóduson belül, és a megadott tartomány egy másik (nem az aktív) munkalapon található, minden egyes alkalommal be kell foglalnia a Sheets objektumot. Például:
    Application.Goto Sheets("Sheet1").Range( _      Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _      Sheets("Sheet1").Cells(4, 5)))					
  • Bármely idézőjelek között található elem esetében (például a "Teszt" elnevezett tartomány) használható egy változó is, amelynek értéke egy szöveges karaktersor. Például a következő helyett:
    ActiveWorkbook.Sheets("Sheet1").Activate						
    használható az alábbi:
    ActiveWorkbook.Sheets(myVar).Activate						
    ahol a myVar értéke "Sheet1".
Hivatkozások

A jelen cikkben olvasható példakódok használatáról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:
290140 A Tudásbázis-cikkekben szereplő, Office XP programokhoz használható példakódok futtatása (Előfordulhat, hogy a tartalom angol nyelven érhető el)
OfficeKBHowTo útmutató folyamatos útmutató nem egymást követő nem folyamatos nem szomszédos nem szomszédos  XL2003 XL2007 XL2010
Megjegyzés: Ez egy „GYORS KÖZZÉTÉTELŰ” cikk, amelyet maga Microsoft támogatási csoportja készített. A benne fogalt információkat a jelentkező problémákra válaszul, az adott állapotukban biztosítjuk. Az anyagok a közzétételük gyorsaságából következően tartalmazhatnak sajtóhibákat, illetve külön értesítés nélkül bármikor átdolgozáson eshetnek át. További tudnivalók olvashatók a felhasználási feltételek között.
Tulajdonságok

Cikkazonosító: 291308 - Utolsó ellenőrzés: 08/01/2012 16:53:00 - Verziószám: 1.0

  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Visszajelzés