Tato příručka vám představí práci s Objekt sešitu ve VBA.
Objekt sešitu
Nejprve, abyste mohli pracovat se sešity ve VBA, musíte porozumět Objekt sešitu.
S objektem sešitu můžete na sešity odkazovat podle jejich názvu takto:
1 | Sešity ("Book2.xlsm"). Aktivujte |
Tento kód však bude fungovat pouze v případě, že je sešit otevřený. Pokud je sešit zavřený, budete muset zadat úplnou cestu k sešitu:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Pokud místo požadovaného sešitu najdete ve stejném adresáři jako sešit, kde je uložen váš kód, můžete k otevření sešitu použít tento řádek:
1 | Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm") |
To využívá objekt ThisWorkbook, o kterém budeme diskutovat v další části.
Indexové číslo sešitu
Nakonec můžete na sešity odkazovat podle jejich „indexového čísla“. Indexové číslo sešitu odpovídá pořadí, ve kterém byl sešit otevřen (technicky je to pozice sešitu ve sbírce sešitů).
1 | Sešity (1). Aktivovat |
To je užitečné, pokud chcete udělat něco jako zavření prvního (nebo posledního) otevřeného sešitu.
Aktivujte sešit, ActiveWorkbook a ThisWorkbook
Pokud je sešit NEAKTIVNÍ, k objektům sešitu můžete přistupovat takto:
1 | Sešity ("Kniha2.xlsm"). Listy ("List1"). Rozsah ("A1"). Hodnota = 1 |
Pokud je však sešit aktivní, můžete objekt sešitu vynechat:
1 | Listy („List1“). Rozsah („A1“). Hodnota = 1 |
A pokud chcete pracovat s aktivním listem sešitu, můžete také vynechat objekt listů:
1 | Rozsah ("A1"). Hodnota = 1 |
Aktivujte sešit
Sešit aktivujete pomocí Aktivujte metodu.
1 | Sešity („Book2.xlsm“). Aktivujte |
Nyní můžete komunikovat s objekty Book2, aniž byste výslovně uvedli název sešitu.
Aktivní pracovní kniha
The Aktivní pracovní kniha objekt vždy odkazovat na aktivní sešit. To je užitečné, pokud chcete ActiveWorkbook přiřadit proměnné, kterou chcete použít později.
12 | Dim wb jako sešitNastavit wb = ActiveWorkbook |
Tato pracovní kniha
The Tato pracovní kniha objekt vždy odkazuje na sešit, kde je uložen spuštěný kód. Chcete -li aktivovat ThisWorkbook, použijte tento řádek kódu:
1 | ThisWorkbook.Activate |
Otevřete sešit
Sešit otevřete pomocí Otevřená metoda:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Z nově otevřeného sešitu se vždy stane Aktivní pracovní kniha, což vám umožní snadnou interakci s ním.
1 | ActiveWorkbook.Save |
Otevřená metoda má několik dalších argumentů, které vám umožňují otevřít jen pro čtení, otevřít sešit chráněný heslem a další. Zde je popsán v našem článku o otevírání / zavírání sešitů.
Otevřít a přiřadit proměnné
Můžete také otevřít sešit a přiřadit jej k proměnné současně:
12 | Dim wb jako sešitNastavit wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Otevřete dialogové okno Soubor
Dialogové okno Otevřít soubor můžete také spustit takto:
12345678 | Sub OpenWorkbook ()Dim strFile jako řetězecstrFile = Application.GetOpenFilename ()Sešity. Otevřeno (strFile)End Sub |
Vytvořit nový (Přidat) sešit
Tento řádek kódu vytvoří nový sešit: This line of code will create a new workbook:
1 | Sešity. Přidat |
Nový sešit se nyní stává Aktivní pracovní kniha, což vám umožní interakci s ním (např. uložení nového sešitu).
Přidat nový sešit do proměnné
Nový sešit můžete také přidat přímo do proměnné:
12 | Dim wb jako sešitNastavit wb = Workbooks.Add |
Zavřít sešit
Zavřít a uložit
Chcete -li sešit zavřít uložením, použijte Metoda zavření s Uložit změny nastaveno na PRAVDA:
1 | ActiveWorkbook.Close SaveChanges: = True |
Zavřít bez uložení
Chcete -li zavřít bez uložení, nastavte Uložit změny rovná FALSE:
1 | ActiveWorkbook.Close SaveChanges: = False |
Sešit Uložit jako
The Metoda SaveAs slouží k uložení sešitu jako.
Chcete -li uložit sešit s novým názvem, do stejného adresáře, můžete použít toto:
1 | ActiveWorkbook.SaveAs „nový“ |
kde „nový“ je nový název souboru.
Chcete -li sešit uložit do nového adresáře s konkrétní příponou souboru, jednoduše zadejte nový adresář a název souboru:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Další příklady VBA sešitu
Název sešitu
Jak získat název sešitu:
1 | MsgBox ActiveWorkbook.Name |
Chránit sešit
K ochraně struktury sešitu před úpravami můžete použít Metoda ochrany (heslo volitelné):
1 | Sešity ("book1.xlsm"). Chraňte "heslo" |
Chcete -li sešit odemknout, použijte Metoda UnProtect:
1 | Sešity ("book1.xlsm"). Zrušte ochranu "hesla" |
Projděte si všechny otevřené sešity
Procházení všemi otevřenými sešity:
123456789 | Sub LoopThroughWBs ()Dim wb jako sešitPro každý wb v sešitechMsgBox wb. JménoDalší wbEnd Sub |
Sešit Aktivujte událost
Můžete spustit nějaký kód, kdykoli se otevře konkrétní sešit pomocí Otevřená událost sešitu.
Tento postup proveďte ve svém sešitu modul ThisWorkbook:
123 | Soukromý dílčí sešit_Otevřít ()Listy („sheet1“). AktivujteEnd Sub |
Tento postup se aktivuje List 1 při každém otevření sešitu.