Níže se podíváme na program v Excel VBA že importuje listy z jiných souborů aplikace Excel do jednoho souboru aplikace Excel.
Stáhněte si Book4.xlsx, Book5.xlsx a přidejte je do „C: \ test \“
Situace:
Do příkazového tlačítka přidejte následující řádky kódu:
1. Nejprve deklarujeme dvě proměnné typu String, objekt listu a jednu proměnnou typu Integer.
Dim adresář jako řetězec, název souboru jako řetězec, list jako list, celkem jako celé číslo
2. Vypněte aktualizaci obrazovky a zobrazování výstrah.
Application.ScreenUpdating = False
Application.DisplayAlerts = False
3. Inicializujte adresář proměnných. Pomocí funkce Dir najdeme první *.xl ?? soubor uložený v tomto adresáři.
adresář = "c: \ test \"
fileName = Dir (adresář & "*.xl ??")
Poznámka: Funkce Dir podporuje použití zástupných znaků s více znaky (*) a jedním znakem (?) K vyhledávání všech různých typů souborů aplikace Excel.
4. Proměnná název_souboru nyní obsahuje název prvního souboru aplikace Excel nalezeného v adresáři. Přidejte smyčku Do While.
Dělat při název_souboru „“
Smyčka
Do smyčky přidejte následující řádky kódu (na 5, 6, 7 a 8).
5. Neexistuje jednoduchý způsob kopírování listů z uzavřených souborů aplikace Excel. Proto otevíráme soubor aplikace Excel.
Sešity. Otevřeno (adresář a název souboru)
6. Importujte listy ze souboru aplikace Excel do souboru import-sheet.xlsm.
Pro každý list v sešitech (název_souboru). Pracovní listy
celkem = sešity ("import-sheets.xlsm"). Worksheets.count
Sešity (název souboru). Pracovní listy (název listu). Kopie _
po: = Sešity ("import-sheets.xlsm"). Pracovní listy (celkem)
Další list
Vysvětlení: proměnná celkem sleduje celkový počet pracovních listů souboru import-sheet.xlsm. Metodu Copy objektu List používáme ke zkopírování každého listu a jeho vložení za poslední list importu-listů.xlsm.
7. Zavřete soubor aplikace Excel.
Sešity (název souboru). Zavřít
8. Funkce Dir je speciální funkcí. Chcete -li získat další soubory aplikace Excel, můžete znovu použít funkci Dir bez argumentů.
název_souboru = Dir ()
Poznámka: Pokud se neshodují žádné další názvy souborů, funkce Dir vrátí řetězec nulové délky (""). V důsledku toho Excel VBA opustí smyčku Do While.
9. Zapněte aktualizaci obrazovky a znovu zobrazujte výstrahy (mimo smyčku).
Application.ScreenUpdating = True
Application.DisplayAlerts = True
10. Otestujte program.
Výsledek: