Nižšie sa pozrieme na program v Excel VBA že importuje hárky z iných súborov programu Excel do jedného súboru programu Excel.
Stiahnite si Book4.xlsx, Book5.xlsx a pridajte ich do „C: \ test \“
Situácia:
Do príkazového tlačidla pridajte nasledujúce riadky kódu:
1. Najprv deklarujeme dve premenné typu String, objekt Worksheet a jednu premennú typu Integer.
Dim adresár As String, fileName As String, sheet As Worksheet, total As Integer
2. Vypnite aktualizáciu obrazovky a zobrazovanie upozornení.
Application.ScreenUpdating = False
Application.DisplayAlerts = False
3. Inicializujte premenný adresár. Na nájdenie prvého súboru *.xl ?? používame funkciu Dir. súbor uložený v tomto adresári.
adresár = "c: \ test \"
fileName = Dir (adresár & "*.xl ??")
Poznámka: Funkcia Dir podporuje používanie zástupných znakov s viacerými znakmi (*) a s jedným znakom (?) Na vyhľadávanie všetkých rôznych typov súborov programu Excel.
4. Premenná fileName teraz obsahuje názov prvého súboru programu Excel, ktorý sa našiel v adresári. Pridajte slučku Do While.
Vykonať pri názve súboru ""
Slučka
Do slučky pridajte nasledujúce riadky kódu (na 5, 6, 7 a 8).
5. Neexistuje jednoduchý spôsob kopírovania pracovných hárkov z uzavretých súborov programu Excel. Preto otvoríme súbor programu Excel.
Zošity. Otvorené (adresár a názov súboru)
6. Importujte listy zo súboru programu Excel do súboru import-sheet.xlsm.
Pre každý list v zošitoch (názov súboru). Pracovné listy
celkom = zošity ("import-sheets.xlsm"). Worksheets.count
Zošity (názov súboru). Pracovné listy (hárok. Názov). Kopírovať _
po: = zošity ("import-sheets.xlsm"). Pracovné listy (celkom)
Ďalší list
Vysvetlenie: premenná total sleduje celkový počet pracovných hárkov súboru import-sheet.xlsm. Na kopírovanie každého pracovného hárka používame metódu Kopírovanie objektu List a prilepujeme ho za posledný list listu import-sheets.xlsm.
7. Zatvorte súbor programu Excel.
Zošity (názov súboru). Zatvorte
8. Funkcia Dir je špeciálna funkcia. Ak chcete získať ďalšie súbory programu Excel, môžete znova použiť funkciu Dir bez argumentov.
fileName = Dir ()
Poznámka: Ak sa už žiadne názvy súborov nezhodujú, funkcia Dir vráti reťazec nulovej dĺžky (""). Výsledkom bude to, že Excel VBA opustí slučku Do While.
9. Zapnite aktualizáciu obrazovky a znova zobrazujte upozornenia (mimo slučky).
Application.ScreenUpdating = True
Application.DisplayAlerts = Pravda
10. Otestujte program.
Výsledok: