Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba-listy-bunky » vba-exce-objekt-range-oblast-bunek

Range objekt - oblast buněk - Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Co umí objekt Range, k čemu jej lze využít ve VBA Excel

Naposled doplněno: 24.10.2014

Objekt Range - úvod

Microsoft Excel logo

Jeden z nejpoužívanějších objektu ve VBA Excel. Objekt definuje buňku či oblast buněk, které potřebujeme označit (vybrat). Pro přehlednost je článek rozdělen na jednotlivé kapitoly:

V ukazkových kódech ukážu jak se odkazovat na požadované buňky, oblasti buněk.


Range - syntaxe

Objekt vratí rozsah, který představuje buňku nebo oblast buněk.

Range(bunka_start [,bunka_konec])

Popis argumentů

  • bunka_start - povinná - pro jednu buňku
  • bunka_konec - volitelná - konečná buňka (pro oblast)

Jak může vypadat

Range("A1") Range(ActiveCell) Range("A1:B5") Range("A1", "B5") Range("A1", ActiveCell) Range(ActiveCell, ActiveCell.Offset(5, 2))

Podrobněji je popsáno v dalších kapitolách.

Range - jedna buňka

V aktivním listě označím buňku A1:

Dim MojeRange As Range Set MojeRange = Range("A1")

nebo

Set MojeRange = ActiveSheet.Range("A1")

Odkaz na buňku v definovaném listě

Set MojeRange = Worksheets("List23").Range("A1")

Budeme-li chtít buňku označit

Range("A1").Select

nebo

Dim MojeRange As Range Set MojeRange = Range("A1") MojeRange.Select

Range - Celý řádek

Set MojeRange = Range("1:1")

nebo

Set MojeRange = ActiveSheet.Rows(1)

Variabilní proměná

Potřebujeteli dynamicky vybírat několik souvislých řádků:

radek1 = 1 radek2 = 5 Rows(radek1 & ":" & radek2).Select

Range - Celý sloupec

Set MojeRange = Range("A:A")

Označit první sloupec

ActiveSheet.Columns(1).select

Několik sloupců

ActiveSheet.Range(Columns(2), Columns(4)).Select nebo ActiveSheet.Range("B:D").Select

Range - souvislá oblast buněk

Set MojeRange = Range("A1:D5")

Tady už to začíný být zajimavé, protože Range lze předat dva parametry. Takže předchozí můžeme zapsat i takhle

Set MojeRange = Range("A1", "D5")

No a jelikož oba argumenty mohou mít rozsah lze provést i třeba tuto fintu. Stále se jedná o stejnou oblast.

Set MojeRange = Range("A1:B2", "C4:D5")

Range - Nesouvislá oblast buněk

Stačí oddělovat čárkou a máme jednotlivé buňky, oblasti

Set MojeRange = Range("B3, B6, B8")

Pro dvě oblasti

Set MojeRange = Range("A1:B2 , C4:D5")

Možné komplikace

Pozor na uvozovky sloučené buňky!

Uvozovky

Pozor na zapomenuté uvozovky. Následující kódy vypadájí podobně, ale nejde o stejnou oblast A1:D5.

Jednou jde o oblast A1:D5 v druhém případě jde o dvě oblasti A1:2 a C4:D5

' A1:D5 Set MojeRange = Range("A1:B2" , "C4:D5") ' A1:2 a C4:D5 Set MojeRange = Range("A1:B2 , C4:D5")

Poznámka: Takhle to vypadá velice jednoduše, ale když oblast buněk vypisuje nějaký skript, už to tak jednoduché není a nalézt chybu je těžší...

Sloučené buňky

Pokud budete provádět range nad sloučenými buňkami můžete obdržet jinou oblast než se kterou počítate.

Adresa parametrem

pokud je adresa buňky v parametru.

Dim MojeRange As Range Dim Bunka As String Bunka = ("B3") Set MojeRange = Range(Bunka) MojeRange.Select

Označit oblast vyfiltrovaných dat

Jak označit oblast pouze vyfiltrovných dat. Řádky 2 až 20.

Range("2:20").SpecialCells(xlCellTypeVisible).Select
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Range - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.


Range - Excel VBA - ukázka šablony

Další související články:

Pokud už máte buňku (oblast) označenou můžete s ními dále pracovat například

Závěrem

Pokud Vás něco napadne k Range, můžete přispět do komentářů. V dalším článku proberu Cells, Offset, atd.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře

" ; // echo "kompletni_cesta :" ; // echo $adresar_pro_vkladani ; // echo "
" ; // echo " Tady bude možnost přidání komentáře" ; // echo "
" ; // echo "
" ; $kompletni_cesta = "komentare"; $adresar_pro_vkladani = $kompletni_cesta; ?> \n"; reset($polozky); while (list($key, $val) = each($polozky)) { if ($val != "." && $val != "..") { if (!is_dir($val)) { // echo "$val
\n"; $fp = FOpen ($adresar_pro_vkladani."/".$val, "r"); //otevře soubor book.dat pro čtení $data = FRead ($fp, FileSize($adresar_pro_vkladani."/".$val)); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře FClose($fp); echo "$data"; } } } ?>




Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2020 |