Ako viete, metóda VBA vykonáva akciu v Exceli 2016. Objekt Range má desiatky metód, ale väčšinu z nich nebudete potrebovať. Tu nájdete niektoré z najbežnejšie používaných metód objektu Range.
Metóda Select
Na výber rozsahu buniek použite metódu Select. Nasledujúci príkaz vyberá rozsah v aktívnom pracovnom hárku:
Rozsah („A1:C12“). Vyberte
Pred výberom rozsahu je často dobré použiť jeden dodatočný príkaz, aby ste sa uistili, že je aktívny správny pracovný hárok. Ak napríklad Hárok1 obsahuje rozsah, ktorý chcete vybrať, na výber rozsahu použite nasledujúce príkazy:
Sheets(“Hárok1”).Aktivovať
Rozsah („A1:C12“). Vyberte
Na rozdiel od toho, čo môžete očakávať, nasledujúce vyhlásenie generuje chybu, ak Hárok1 ešte nie je aktívny hárok. Inými slovami, namiesto jedného musíte použiť dva príkazy: jeden na aktiváciu hárku a druhý na výber rozsahu.
Listy(“Hárok1”).Rozsah(“A1:C12”).Vybrať
Ak na výber rozsahu použijete metódu GoTo objektu Application, môžete zabudnúť na výber správneho pracovného hárka. Tento príkaz aktivuje Hárok1 a potom vyberie rozsah:
Aplikácia. Prejsť na hárky(“Hárok1”).Rozsah(“A1:C12”)
Metóda Prejsť na je ekvivalentom VBA k stlačeniu klávesu F5 v Exceli, ktorý zobrazí dialógové okno Prejsť na.
Metódy kopírovania a vkladania
Operácie kopírovania a prilepenia vo VBA môžete vykonávať pomocou metód Kopírovať a Prilepiť. Všimnite si, že do hry vstupujú dva rôzne predmety. Metóda Copy je použiteľná pre objekt Range, ale metóda Paste platí pre objekt Worksheet. V skutočnosti to dáva zmysel: Skopírujete rozsah a prilepíte ho do pracovného hárka.
Toto krátke makro (s láskavým dovolením od makrorekordéra) skopíruje rozsah A1:A12 a prilepí ho do toho istého pracovného hárka so začiatkom v bunke C1:
Sub CopyRange()
Rozsah („A1:A12“). Vyberte
Selection.Copy
Rozsah („C1“). Vyberte
ActiveSheet.Paste
End Sub
Všimnite si, že v predchádzajúcom príklade sa objekt ActiveSheet používa s metódou Paste. Toto je špeciálna verzia objektu Worksheet, ktorá odkazuje na aktuálne aktívny pracovný list. Všimnite si tiež, že makro vyberie rozsah pred jeho kopírovaním. Nemusíte však vybrať rozsah predtým, ako s ním niečo urobíte. V skutočnosti nasledujúci postup vykonáva rovnakú úlohu ako predchádzajúci príklad pomocou jediného príkazu:
Sub CopyRange2()
Rozsah („A1:A12“). Rozsah kopírovania („C1“)
End Sub
Tento postup využíva skutočnosť, že metóda Kopírovať môže použiť argument, ktorý zodpovedá cieľovému rozsahu operácie kopírovania. To je niečo, čo môžete zistiť kontrolou v systéme pomoci.
Metóda Clear
Metóda Clear vymaže obsah rozsahu plus celé formátovanie buniek. Napríklad, ak chcete prepnúť všetko v stĺpci D, nasledujúci príkaz vám pomôže:
Stĺpce(“D:D”).Vymazať
Mali by ste poznať dve súvisiace metódy. Metóda ClearContents vymaže obsah rozsahu, ale ponechá formátovanie nedotknuté. Metóda ClearFormats odstráni formátovanie v rozsahu, ale nie obsah bunky.
Metóda Delete
Vymazanie rozsahu sa líši od vymazania rozsahu. Keď odstránite rozsah, Excel posunie zostávajúce bunky, aby vyplnil rozsah, ktorý ste odstránili.
Nasledujúci príklad používa metódu Delete na odstránenie riadku 6:
Riadky(“6:6”).Odstrániť
Keď odstránite rozsah, ktorý nie je úplným riadkom alebo stĺpcom, Excel potrebuje vedieť, ako posunúť bunky. (Ak chcete zistiť, ako to funguje, experimentujte s príkazom Domov → Bunky → Odstrániť → Odstrániť bunky v Exceli.)
Nasledujúce vyhlásenie vymaže rozsah a potom vyplní výslednú medzeru posunutím ostatných buniek doľava:
Rozsah („C6:C10“). Odstráňte xlToLeft
Metóda Delete používa argument, ktorý označuje, ako má Excel posunúť zostávajúce bunky. V tomto prípade sa ako argument používa vstavaná konštanta (xlToLeft). Môžete tiež použiť xlUp, ďalšiu pomenovanú konštantu.