Výběr buněk či oblastí pomocí procedur jazyka Visual Basic v aplikaci Excel

Překlady článku Překlady článku
ID článku: 291308 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Další informace

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámený s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele. Příklady v tomto článku využívají metody jazyka Visual Basic uvedené v následující tabulce.
   Metoda             Argumenty
   ------------------------------------------
   Activate           žádné
   Cells              rowIndex, columnIndex
   Application.Goto   odkaz, posunutí
   Offset             rowOffset, columnOffset
   Range              cell1
                      cell1, cell2
   Resize             rowSize, columnSize
   Select             žádné
   Sheets             index (nebo sheetName)
   Workbooks          index (nebo bookName)
   End                směr
   CurrentRegion      žádné
				
Příklady v tomto článku využívají vlastnosti v následující tabulce.
   Vlastnost         Použití
   ---------------------------------------------------------------------
   ActiveSheet      určení aktivního listu
   ActiveWorkbook   určení aktivního sešitu
   Columns.Count    spočítání sloupců v zadané položce
   Columns.Count    spočítání řádků v zadané položce
   Selection        odkaz na aktuálně vybranou oblast
				

1: Jak vybrat buňku v aktivním sešitu

Chcete-li vybrat buňku D5 v aktivním sešitu, můžete použít některý z následujících příkladů:
ActiveSheet.Cells(5, 4).Select
				
–nebo–
ActiveSheet.Range("D5").Select
				

2: Jak vybrat buňku na jiném listu stejného sešitu

Chcete-li vybrat buňku E6 na jiném listu stejného sešitu, můžete použít některý z následujících příkladů:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   nebo
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
Nebo můžete aktivovat příslušný list a potom vybrat buňku pomocí metody 1:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3: Jak vybrat buňku na listu jiného sešitu

Chcete-li vybrat buňku F7 na listu jiného sešitu, můžete použít některý z následujících příkladů:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
nebo
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
Nebo můžete aktivovat příslušný list a potom vybrat buňku pomocí metody 1:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4: Jak vybrat oblast buněk na aktivním listu

Chcete-li vybrat oblast buněk C2:D10 na aktivním listu, můžete použít některý z následujících příkladů:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5: Jak vybrat oblast buněk na jiném listu stejného sešitu

Chcete-li vybrat oblast buněk D3:E11 na jiném listu stejného sešitu, můžete použít některý z následujících příkladů:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
Nebo můžete aktivovat daný list a potom vybrat oblast pomocí metody 4:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6: Jak vybrat oblast buněk na listu jiného sešitu

Chcete-li vybrat oblast buněk E4:F12 na listu jiného sešitu, můžete použít některý z následujících příkladů:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
Nebo můžete aktivovat daný list a potom vybrat oblast pomocí metody 4:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7: Jak vybrat pojmenovanou oblast na aktivním listu

Chcete-li vybrat pojmenovanou oblast Test na aktivním listu, můžete použít některý z následujících příkladů:
Range("Test").Select
				
Application.Goto "Test"
				

8: Jak vybrat pojmenovanou oblast na jiném listu stejného sešitu

Chcete-li vybrat pojmenovanou oblast Test na jiném listu stejného sešitu, můžete použít následující příklad:
Application.Goto Sheets("Sheet1").Range("Test")
				
Nebo můžete aktivovat příslušný list a potom vybrat pojmenovanou oblast pomocí metody 7:
Sheets("Sheet1").Activate
Range("Test").Select
				

9: Jak vybrat pojmenovanou oblast na listu jiného sešitu

Chcete-li vybrat pojmenovanou oblast Test na listu jiného sešitu, můžete použít následující příklad:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
Nebo můžete aktivovat příslušný list a potom vybrat pojmenovanou oblast pomocí metody 7:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10: Jak vybrat buňku v určitém vztahu k aktivní buňce

Chcete-li vybrat buňku, která je o pět řádků níže a o čtyři sloupce vlevo od aktivní buňky, můžete použít následující příklad:
ActiveCell.Offset(5, -4).Select
				
Chcete-li vybrat buňku, která je o dva řádky výše a o tři sloupce vpravo od aktivní buňky, můžete použít následující příklad:
ActiveCell.Offset(-2, 3).Select
				
Poznámka: Při pokusu o výběr buňky, která leží mimo oblast listu, dojde k chybě. Je-li ve výše uvedené prvním příkladu aktivní buňka ve sloupcích A až D, bude vrácena chyba, jelikož přesunem o čtyři sloupce doleva by došlo k přemístění aktivní buňky na neplatnou adresu buňky.

11: Jak vybrat buňku v určitém vztahu k jiné (neaktivní) buňce

Chcete-li vybrat buňku, která leží o pět řádků níže a o čtyři sloupce vpravo od buňky C7, můžete použít některý z následujících příkladů:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12: Jak vybrat oblast buněk odsazenou od zadané oblasti

Chcete-li vybrat oblast buněk stejné velikosti jako pojmenovaná oblast Test, která je však posunutá o čtyři řádky dolů a o tři sloupce doprava, můžete použít následující příklad:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
Je-li pojmenovaná oblast na jiném (neaktivním) listu, je třeba nejprve tento list aktivovat a potom vybrat oblast pomocí následujícího příkladu:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13: Jak vybrat zadanou oblast a změnit velikost výběru

Chcete-li vybrat pojmenovanou oblast Databáze a rozšířit výběr o pět řádků, můžete použít následující příklad:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14: Jak vybrat zadanou oblast, odsadit ji a potom změnit její velikost

Chcete-li vybrat oblast o čtyři řádky níže a o tři sloupce vpravo od pojmenované oblasti Databáze a přidat o dva řádky a jeden sloupec více, než je v pojmenované oblasti, můžete použít následující příklad:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15: Jak vybrat sjednocení dvou či více zadaných oblastí

Chcete-li vybrat sjednocení (tedy spojenou oblast) dvou pojmenovaných oblastí Test a Vzor, můžete použít následující příklad:
Application.Union(Range("Test"), Range("Sample")).Select
				
Obě oblasti musí být na stejném listu, jinak nebude příklad fungovat. Také je třeba vědět, že metoda Union (Sjednocení) nefunguje mezi různými listy. Například tento řádek funguje správně
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
a tento řádek
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
vrátí chybovou zprávu:
Metoda Union třídy aplikace se nezdařila

16: Jak vybrat průnik dvou či více zadaných oblastí

Chcete-li vybrat průnik dvou pojmenovaných oblastí Test a Vzor, můžete použít následující příklad:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
Obě oblasti musí být na stejném listu, jinak nebude příklad fungovat.



Příklady 17 až 21 v tomto článku se týkají následující ukázkové sady dat. Každý z příkladů udává oblast buněk v ukázce dat, která bude vybrána.
   A1: Název       B1: Prodej    C1: Množství
   A2: a       B2: $10      C2: 5
   A3: b       B3:          C3: 10
   A4: c       B4: $10      C4: 5
   A5:         B5:          C5:
   A6: Celkem   B6: $20      C6: 20
				

17: Jak vybrat poslední buňku ve sloupci souvislých dat

Chcete-li vybrat poslední buňku ve sloupci souvislých dat, použijte následující příklad:
ActiveSheet.Range("a1").End(xlDown).Select
				
Při použití tohoto kódu v ukázkové tabulce bude vybrána buňka A4.

18: Jak vybrat prázdnou buňku na konci sloupce souvislých dat

Chcete-li vybrat buňku pod souvislou oblastí buněk, použijte následující příklad:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
Při použití tohoto kódu v ukázkové tabulce bude vybrána buňka A5.

19: Jak vybrat celou oblast souvislých buněk ve sloupci

Chcete-li vybrat oblast souvislých buněk ve sloupci, použijte některý z následujících příkladů:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   nebo
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
Při použití tohoto kódu ve vzorové tabulce budou vybrány buňky A1 až A4.

20: Jak vybrat celou oblast nesouvislých buněk ve sloupci

Chcete-li ve sloupci vybrat oblast buněk, které jsou nesouvislé, použijte některý z následujících příkladů:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   nebo
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
Při použití tohoto kódu ve vzorové tabulce budou vybrány buňky A1 až A6.

21: Jak vybrat obdélníkovou oblast buněk

Chcete-li vybrat obdélníkovou oblast buněk okolo určité buňky, použijte metodu CurrentRegion. Oblast vybraná metodou CurrentRegion je oblast ohraničená kombinací prázdných řádků a prázdných sloupců. Následuje příklad použití metody CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
				
Tento kód vybere buňky A1 až C4. Následují další příklady, jak vybrat stejnou oblast buněk:
ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
				
   nebo
				
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
				
V některých případech budete možná chtít vybrat oblast buněk A1 až C6. V tom případě nebude metoda CurrentRegion účinná, protože řádek 5 je prázdný. V následujících příkladech budou vybrány všechny buňky:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
    nebo
				
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
   ActiveSheet.Cells(lastRow, lastCol).Address).Select
				

22: Jak vybrat více nesouvislých sloupců různé délky

Chcete-li vybrat více nesouvislých sloupců různé délky, použijte následující ukázkovou tabulku a příklad makra:
   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
				
Při použití tohoto kódu v ukázkové tabulce budou vybrány buňky A1:A3 a C1:C6.

POZNÁMKY K PŘÍKLADŮM

  • Vlastnost ActiveSheet lze obvykle vynechat, protože pokud není uveden určitý list, je předpokládán aktivní list. Například namísto kódu
    ActiveSheet.Range("D5").Select
    						
    můžete použít kód:
    Range("D5").Select
    						
  • Také vlastnost ActiveWorkbook lze obvykle vynechat. Není-li uveden určitý sešit, předpokládá se aktivní sešit.
  • Použijete-li metodu Application.Goto a chcete použít dvě metody Cells (Buňky) v rámci metody Range (Oblast) a přitom je zadaná oblast na jiném (neaktivním) listu, je třeba vždy zahrnout objekt Sheets (Listy). Příklad:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • Každou položku uvedenou v závorkách (například pojmenovaná oblast „Test“) je možné též použít jako proměnnou, jejíž hodnota je textový řetězec. Například namísto kódu
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    můžete použít kód
    ActiveWorkbook.Sheets(myVar).Activate
    						
    kde hodnota proměnné myVar je „List1“.

Odkazy


Další informace o způsobu použití ukázkového kódu v tomto článku naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
290140 Jak spustit ukázkový kód v aplikacích sady Office XP z článků znalostní báze Knowledge Base (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Vlastnosti

ID článku: 291308 - Poslední aktualizace: 9. března 2014 - Revize: 7.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Klíčová slova: 
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com