VBA Práce se sešity (Objekt sešitu)

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.

wave wave wave wave wave