Přejít na hlavní obsah

Uzavření všech otevřených knih v Excelu VBA

  • Ivan Blažek
  • Rady

Microsoft Excel se svými výkonnými funkcemi je jedním z nejoblíbenějších nástrojů pro práci s daty. Při práci s mnoha knihami a listy může být nutné zavřít všechny otevřené knihy. Virtuální prostředí pro provádění Maker VBA lze použít k automatizaci tohoto úkolu, což může výrazně zjednodušit práci.

Uzavření všech knih může být užitečné, když chcete vymazat paměť RAM, uvolnit zdroje počítače nebo jednoduše uložit změny ve všech otevřených knihách. Excel VBA má několik způsobů, jak zavřít knihy, včetně uzavření jedné knihy nebo všech otevřených knih.

V článku se podíváme na příklady kódu na VBA, které umožňují zavřít všechny otevřené knihy. Podíváme se na dva základní přístupy: použití cyklu k uzavření každé otevřené knihy se střídá a použití metody aplikace s možnostmi, které zavřou všechny otevřené knihy najednou.

Uzavření otevřených knih Excel VBA-jednoduché způsoby

Metoda 1: uzavření všech otevřených knih

Prvním způsobem je použití metody Workbooks.Close . Tato metoda uzavírá všechny otevřené knihy. Zde je příklad kódu:

Sub CloseAllWorkbooks()Dim wb As WorkbookFor Each wb In Workbookswb.Close SaveChanges:=FalseNext wbEnd Sub

Tento kód přeruší všechny otevřené knihy v Excelu a každý uzavře. Nastavení SaveChanges je nastaveno na False, aby se změny neukládaly před zavřením knihy. Pokud potřebujete uložit změny, nastavte tuto možnost na True .

Metoda 2: Uzavření určité knihy

Pokud potřebujete zavřít pouze konkrétní knihu, můžete použít metodu Workbooks.Close s uvedením názvu knihy nebo indexu. Zde je příklad kódu:

Sub CloseWorkbookByName()Dim wb As WorkbookSet wb = Workbooks("Название книги.xlsx")wb.Close SaveChanges:=FalseEnd SubSub CloseWorkbookByIndex()Dim wb As WorkbookSet wb = Workbooks(2)wb.Close SaveChanges:=FalseEnd Sub

V prvním příkladu se kniha uzavírá jménem. Ve druhém příkladu se kniha uzavírá indexem (počínaje 1).

Metoda 3: Uzavření všech knih kromě aktivního

Tento způsob uzavírá všechny knihy kromě aktivní. Je založen na použití objektu ThisWorkbook, což je aktuální kniha. Zde je příklad kódu:

Sub CloseAllWorkbooksExceptActive()Dim wb As WorkbookFor Each wb In WorkbooksIf Not wb Is ThisWorkbook Thenwb.Close SaveChanges:=FalseEnd IfNext wbEnd Sub

V tomto příkladu dojde k přeskupení všech knih v Excelu, a pokud se současná kniha nerovná aktivní knize, uzavře se.

Závěrem lze říci, že uzavření otevřených knih v Excelu VBA představuje důležitý úkol pro zajištění efektivity práce s makry. Tyto jednoduché způsoby vám pomohou Zavřít všechny otevřené knihy nebo vybranou knihu a vyhnout se potenciálním chybám a zpomalení.

Jak zavřít všechny otevřené knihy současně v Excelu VBA

Pokud potřebujete zavřít všechny otevřené knihy v Excelu pomocí VBA, můžete použít následující kód:

Sub ЗакрытьВсеКниги()Dim Книга As WorkbookApplication.ScreenUpdating = False'Проходим по всем открытым книгамFor Each Книга In WorkbooksКнига.Close SaveChanges:=FalseNext КнигаApplication.ScreenUpdating = TrueEnd Sub

Tento kód zavře všechny otevřené knihy v Excelu bez uložení změn. Dočasně také deaktivuje aktualizaci obrazovky, aby byl kód spuštěn rychle a efektivně.

Tento kód můžete uložit do makra nebo jej přidat do projektu VBA v Excelu. Poté můžete toto makro snadno vyvolat a zavře všechny otevřené knihy v Excelu.

Uzavření všech otevřených knih může být užitečné, když chcete začít s novou sadou dat nebo když chcete vymazat paměť a uvolnit zdroje počítače.

Poznámka: Před uzavřením knihy bez uložení změn se ujistěte, že jste uložili všechna potřebná data, abyste se vyhnuli ztrátě informací.

Uzavření otevřených knih v Excelu VBA pomocí cyklu

V programovacím jazyce VBA existuje možnost Zavřít všechny otevřené knihy v Excelu pomocí cyklu. To může být užitečné, když je třeba rychle zavřít několik knih nebo vyčistit vývojové prostředí před provedením dalších operací.

K provedení tohoto úkolu můžeme použít smyčku For each, která umožňuje procházet všechny otevřené knihy v aplikaci Excel. Uvnitř cyklu můžeme vyvolat metodu Close pro každou knihu, abychom ji zavřeli.

Zde je příklad kódu, který ukazuje uzavření všech otevřených knih:

Sub CloseAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks wb.Close SaveChanges:=False Next wb End Sub

V tomto příkladu oznamujeme proměnnou WB typu Workbook, která bude použita k přerušení knih. Poté použijeme cyklus For Each k přebírání všech knih ve sbírce Workbooks.

V rámci cyklu voláme metodu Close pro každou knihu a přenášíme parametr SaveChanges s hodnotou False. Tím zajistíte, že změny nebudou uloženy při zavírání knihy. Pokud chcete uložit změny, změňte hodnotu parametru SaveChanges na True.

Po dokončení cyklu budou všechny knihy uzavřeny a můžete pokračovat v dalších operacích v Excelu.

Pomocí tohoto kódu můžete snadno zavřít všechny otevřené knihy v aplikaci Excel VBA a usnadnit si práci s aplikací.

Jak zavřít konkrétní otevřenou knihu v Excelu VBA

K uzavření určité otevřené knihy v Excelu VBA lze použít metodu Close . Tato metoda umožňuje zavřít aktivní knihu nebo uvedenou knihu jménem nebo indexem.

Zde je příklad kódu, který ukazuje uzavření knihy s názvem:

Sub ЗакрытьКнигу()Dim книгаЗакрыть As Workbook'Устанавливаем книгу, которую нужно закрытьSet книгаЗакрыть = Workbooks("Название книги.xlsx")'Закрываем книгукнигаЗакрыть.Close'Освобождаем ресурсы памятиSet книгаЗакрыть = NothingEnd Sub

V tomto příkladu vytvoříme proměnnou knihabýt, která obsahuje odkaz na knihu se zadaným názvem. Poté použijeme metodu Close na tuto proměnnou k uzavření knihy. Nakonec uvolníme paměťové zdroje tím, že nastavíme proměnnou knihabýt na hodnotu Nothing .

Pokud neznáte název knihy, ale znáte její index, můžete použít následující kód:

Sub ЗакрытьКнигу()Dim книгаЗакрыть As Workbook'Устанавливаем книгу, которую нужно закрыть по индексуSet книгаЗакрыть = Workbooks(1) '1 - индекс книги'Закрываем книгукнигаЗакрыть.Close'Освобождаем ресурсы памятиSet книгаЗакрыть = NothingEnd Sub

V tomto příkladu nastavíme proměnnou knihabýt roven knize se zadaným indexem (1). Poté použijeme metodu Close a uvolníme paměťové zdroje.

Pomocí výše uvedených příkladů kódu budete moci zavřít konkrétní otevřenou knihu v Excelu VBA.

Uzavření otevřených knih v Excelu VBA se zachováním změn

V programovacím jazyce VBA (Visual Basic for Applications) lze automatizovat zavírání otevřených knih v programu Excel. V tomto případě je možné určit, aby změny provedené v knihách byly uloženy před vydáním.

K uzavření všech otevřených knih s uložením změn v Excelu VBA můžeme použít cyklus, který bude procházet každou otevřenou knihu a vyvolá metodu Close . Pomocí doplňkového argumentu metody Close, která je zodpovědná za ukládání změn, můžeme určit, že změny musí být uloženy.

Níže je uveden kód VBA, který zavře všechny otevřené knihy:

Dim wb As WorkbookFor Each wb In Application.Workbookswb.Close SaveChanges:=TrueNext wb

V tomto kódu používáme proměnnou wb, která představuje každou otevřenou knihu ve sbírce workbooks objektu aplikace . Poté zavoláme metodu Close pro každou knihu a předáme argument SaveChanges:=True pro uložení změn před uzavřením.

Tímto způsobem tento kód zavře všechny otevřené knihy v Excelu VBA a uloží všechny změny v nich provedené.

Při používání tohoto kódu je třeba vzít v úvahu, že zavře všechny otevřené knihy, včetně osobních knih (personal.xlsb), pokud jsou otevřené. Před použitím kódu se proto ujistěte, že nenaruší váš současný pracovní postup.

Pokud potřebujete zavřít pouze určité knihy, můžete provést příslušné změny kódu přidáním podmínek nebo změnou způsobu výběru knih k uzavření.