Importuj arkusze za pomocą Excel VBA - łatwe makra programu Excel

Spisie treści

Poniżej przyjrzymy się programowi w Excel VBA że importuje arkusze z innych plików Excela do jednego pliku Excel.

Pobierz Book4.xlsx, Book5.xlsx i dodaj je do "C:\test\"

Sytuacja:

Dodaj następujące wiersze kodu do przycisku polecenia:

1. Najpierw deklarujemy dwie zmienne typu String, obiekt Worksheet i jedną zmienną typu Integer.

Dim katalog As String, fileName As String, arkusz As Worksheet, suma As Integer

2. Wyłącz aktualizowanie ekranu i wyświetlanie alertów.

Application.ScreenUpdating = Fałsz
Application.DisplayAlerts = False

3. Zainicjuj katalog zmiennych. Używamy funkcji Dir, aby znaleźć pierwszy *.xl?? plik przechowywany w tym katalogu.

katalog = "c:\test\"
fileName = Dir(katalog & "*.xl??")

Uwaga: Funkcja Dir obsługuje użycie wieloznaków wieloznakowych (*) i jednoznakowych (?) do wyszukiwania wszystkich typów plików Excel.

4. Zmienna fileName zawiera teraz nazwę pierwszego pliku Excela znalezionego w katalogu. Dodaj pętlę Do While.

Wykonaj, gdy nazwa_pliku ""
Pętla

Dodaj następujące linie kodu (w 5, 6, 7 i 8) do pętli.

5. Nie ma prostego sposobu na skopiowanie arkuszy roboczych z zamkniętych plików Excela. Dlatego otwieramy plik Excel.

Workbooks.Open (katalog i nazwa pliku)

6. Zaimportuj arkusze z pliku Excel do import-sheet.xlsm.

Dla każdego arkusza w skoroszytach(nazwapliku).Worksheets
total = Skoroszyty("import-sheets.xlsm").Worksheets.count
Skoroszyty(nazwapliku).Arkusze(nazwa.arkusza).Kopiuj _
after:=Skoroszyty("import-sheets.xlsm").Arkusze (ogółem)
Następny arkusz

Wyjaśnienie: zmienna total przechowuje łączną liczbę arkuszy kalkulacyjnych import-sheet.xlsm. Używamy metody Copy obiektu Worksheet, aby skopiować każdy arkusz i wkleić go po ostatnim arkuszu import-sheets.xlsm.

7. Zamknij plik Excel.

Skoroszyty(nazwapliku).Zamknij

8. Funkcja Dir jest funkcją specjalną. Aby pobrać inne pliki Excela, możesz ponownie użyć funkcji Dir bez argumentów.

nazwa_pliku = katalog()

Uwaga: Gdy nie ma już zgodnych nazw plików, funkcja Dir zwraca ciąg o zerowej długości (""). W rezultacie Excel VBA opuści pętlę Do While.

9. Ponownie włącz aktualizowanie ekranu i wyświetlanie alertów (poza pętlą).

Application.ScreenUpdating = Prawda
Application.DisplayAlerts = Prawda

10. Przetestuj program.

Wynik:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave