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

Jste zde: Úvodní stránka » excel » vba-listy-sheet » Activate-Select-rozdil-Excel-VBA
Microsoft Excel logo

Activate Select - rozdíl v Excel VBA

Videokurzy Excel

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

Jaký je rozdíl mezi aktivaci Aktivate (například listu) a výběrem Select. Jde o na první pohled velice podobné metody, na ten druhý už tak stejné nejsou.

Úvodem do Aktivate a Select

Při označování listu (vybrání objektu, neboli karty alias ouška listu). List můžete označit nebo aktivovat. Jaký je mezi tím rozdíl.

Aktivate

Aktivuje se, fyzicky se vstoupí do listu. Výhodou, že lze aktivovat i skrytý list. Navíc lze mít aktivovaný jen jeden list (ač jich může být vybráno přes Select více, aktivovat lze pouze jeden list).

Aktivuji list s názvem 2

' kod na prvním listu, list 2 je viditelný Worksheets("2").Activate

Aktivovat, například třetí list. Ač vyselektováno je více listů 1 až 3. Kdy se kód spouští z listu "1".

Sheets(Array("1", "2", "3")).Select Sheets("3").Activate

Tip

List se aktivuje i jeho přidáním.

Select

Výběr listu, ale mohou být problémy. Viz jednotlivé ukázky.

' pořadí Sheets(1).Select ' název Sheets("1").Select

Vybrat mohu více listů

Sheets(Array("1", "2", "3")).Select

Některý list z výběru aktivovat, například třetí. Ač spouštím kód z listu 1.

Sheets(Array("1", "2", "3")).Select Sheets("3").Activate

Za mě je lépe odkazy na listy deklarovat a pak selektovat/označovat.

Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook ' nebo This... Set ws = Sheet("List1") wb.ws.Select

Nebo vůbec nejlépe se okazovat přímo přes kodové označení listu. Kdy přes vlastnosti Properties mohu nastavit jakykoliv vhodný název listů.

MujKodovyNazevListu.Select List1.Select Excel VBa - kodobé označení listu

Problémy Aktivate Select

Problémy Aktivate Select. Pokusil jsme se připravit pár problému, které mohou nastat při použití Select, Activate a nástínit, co se bude vypisovat. Určitě budou i další komplikace, pokud jste na nějaký narazily, můžete zmínit v komentářích, rád doplním.

Co dělá problémy, vím, že pokud jste pokročilý tak o tomhle víte, ale některé mě hodně potrápily tak proč nezveřejnit až budu někdy něco řešit

  • problémy s pořadím a názvem listu - někdo přejmenuje, přesune
  • číslo a text - pokud není deklarováno jde o pořadí nebo název
  • komplikace s viditelností a neviditelností listu - vím existuje i superskrytý list
  • aktivním vs v kterém je umístěn kód /potažmo kód v modulu/
  • ... určitě ještě něco

Příklad

Pro praktickou ukázku si připravte

  • mějte 5 listů s buňkami pojmenovány 1, 3, 2, 5, 4 - vím jde o čísla a 2 a 3 a 4 a 5 jsou prohozeny, nebo-li pořadí a název co může zlobit
  • v buňce A1 zadejte slovně název listu 1 ... jedna atd. - at se ví co se vypisuje
  • z listu si skryjte list 5
  • mějte 3 listy typu graf pojmenovány 6, 7, 8 také čísla alias pořadí
  • z listu si skryjte list 7

Název listu

Odkazujeme se na název listu

' kod na prvním listu, list 2 je viditelný Worksheets("2").Activate MsgBox (Range("A1").Value) ' vypíše jedna MsgBox (ActiveSheet.Range("A1").Value) ' vypíše dvě Worksheets("2").Select MsgBox (Range("A1").Value) ' vypíše jedna

Pořadí listu

odkazujme se na pořadí listu

' kod na prvním listu, list 2 viditelný na 3 pořadí Worksheets(2).Activate MsgBox (Range("A1").Value) ' vypíší jedna MsgBox (ActiveSheet.Range("A1").Value) ' vypíše tři, bere pořadí Worksheets(2).Select MsgBox (Range("A1").Value) ' vypíší jedna

Skrytý list

Odkazujme/aktivujeme pořadí a název listu, skrytého čtvrtého

Worksheets("4").Activate MsgBox (ActiveSheet.Range("A1").Value) ' ač je skrytý tak zobrazí hodnotu ze čtvrtého Worksheets(4).Activate MsgBox (ActiveSheet.Range("A1").Value) ' zobrazí páty jelikož list 4 je skrytý a 5 je jako 5-tý v pořadí

Pozor, list 4 s názvem 4 je skrytý proto Select skončí chybou.

Worksheets(4).Select MsgBox (ActiveSheet.Range("A1").Value) ' podobně pokue je název listu "2" skrytý Sheets("2").Select MsgBox (ActiveSheet.Range("A1").Value) ' případně pokud skryji list na pozici 3 s názvem 2 ' ač list na viditelné pozici tři existuje tj. název 4 ' přesto skončí chybou Sheets(3).Select MsgBox (ActiveSheet.Range("A1").Value) ' název samozdřejmě projde Sheets("3").Select MsgBox (ActiveSheet.Range("A1").Value)

Ošetření chyb

Aneb jak předejít komplikacím. Ten z mého pohledu jednodušší je používat kódové jméno listu (to se jen tak někomu nepodaří přepsat, vím ve VBA to jde velice jednoduše, ale proč by to někdo dělal). Někdo naproti tomu má rád definovaní, nasetování, neboli přiřazení listu do proměnné. Tohle nechám na vašem uvážení, stejně tak pokud budete používat název či pořadí listu.

Kódové označení

Každý list má své kódové označení které je vidět ve VBA. Ve vlastnostech lze přepsat. Takže místo List1 se mohu odkazovat na vlastní kódové jméno. Prakticky pak nemusím selektovat, ale rovnou buňku vyberu.

MujKodovyNazevListu.[A5] = 10 MujKodovyNazevListu.Range("A2").Value = 11 MujKodovyNazevListu.Range("A3") = 12 MujKodovyNazevListu.Range("MujDefinovanyNazevBunky").Value = 13

Deklarace proměnných a setování

Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook Set ws = Sheet("List1") wb.ws.Select

další ukázky

Více v ukázce jak se odkazovat na listy Worksheets, Sheets, Charts pojmy a využití Select Vybírat (označovat) listy Excel VBA - SELECT.

Další informace:

Co jde s listy a v listech tvořit, jsem sepsal v samostatných článcích:

Závěr

Máte nějaký tip na označení listu, můžete zmínit v komentářích.

Článek byl aktualizován: 21.12.2018 16:49

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 zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.







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 - 2019 | 1759

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.