Przejdź do głównej zawartości

Jak połączyć wiele skoroszytów w jeden główny skoroszyt w programie Excel?

Czy kiedykolwiek utknąłeś, gdy musisz połączyć wiele skoroszytów w skoroszyt główny w programie Excel? Najstraszniejsze jest to, że skoroszyty, które musisz połączyć, zawierają wiele arkuszy roboczych. A jak połączyć tylko określone arkusze z wielu skoroszytów w jeden skoroszyt? Ten samouczek przedstawia kilka przydatnych metod, które pomogą Ci rozwiązać problem krok po kroku.


Połącz wiele skoroszytów w jeden skoroszyt z funkcją Przenieś lub Kopiuj

Jeśli istnieje tylko kilka skoroszytów do połączenia, możesz użyć polecenia Przenieś lub Kopiuj, aby ręcznie przenieść lub skopiować arkusze z oryginalnego skoroszytu do skoroszytu głównego.

1. Otwórz skoroszyty, które chcesz scalić w główny skoroszyt.

2. Wybierz arkusze z oryginalnego skoroszytu, które chcesz przenieść lub skopiować do głównego skoroszytu.

Uwagi:

1). Możesz wybrać wiele nieprzylegających arkuszy roboczych, przytrzymując przycisk Ctrl i klikając kolejno karty arkusza.

2). Aby wybrać wiele sąsiednich arkuszy, kliknij pierwszą kartę arkusza, przytrzymaj Shift klucz, a następnie kliknij ostatnią kartę arkusza, aby zaznaczyć je wszystkie.

3). Możesz kliknąć prawym przyciskiem myszy dowolną kartę arkusza, kliknąć Wybierz wszystkie arkusze z menu kontekstowego, aby jednocześnie zaznaczyć wszystkie arkusze w skoroszycie.

3. Po wybraniu potrzebnych arkuszy kliknij prawym przyciskiem myszy kartę arkusza, a następnie kliknij Przenieś lub skopiuj z menu kontekstowego. Zobacz zrzut ekranu:

4. Następnie Przenieś lub skopiuj pojawi się okno dialogowe, w Aby zarezerwować wybierz główny skoroszyt, do którego chcesz przenieść lub skopiować arkusze. Wybierz przeniesienie, aby zakończyć w Przed arkuszem zaznacz pole Utwórz kopię i na koniec kliknij OK przycisk.

Następnie możesz zobaczyć arkusze robocze w dwóch skoroszytach połączonych w jeden. Powtórz powyższe kroki, aby przenieść arkusze z innych skoroszytów do skoroszytu głównego.


Połącz wiele skoroszytów lub określonych arkuszy skoroszytów z głównym skoroszytem za pomocą VBA

Jeśli istnieje potrzeba scalenia wielu skoroszytów w jeden, możesz zastosować następujące kody VBA, aby szybko to osiągnąć. Wykonaj następujące czynności.

1. Umieść wszystkie skoroszyty, które chcesz połączyć, w jeden w tym samym katalogu.

2. Uruchom plik Excela (ten skoroszyt będzie skoroszytem głównym).

3. wciśnij inny + F11 klawisze, aby otworzyć Microsoft Visual Basic dla aplikacji okno. w Microsoft Visual Basic dla aplikacji okno, kliknij wstawka > Moduł, a następnie skopiuj poniższy kod VBA do okna modułu.

Kod VBA 1: Scal wiele skoroszytów programu Excel w jeden

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub
	

Uwagi:

1. Powyższy kod VBA zachowa nazwy arkuszy oryginalnych skoroszytów po scaleniu.

2. Jeśli chcesz rozróżnić, które arkusze w głównym skoroszycie pochodzą, skąd po scaleniu, zastosuj poniższy kod VBA 2.

3. Jeśli chcesz tylko połączyć określone arkusze ze skoroszytów w główny skoroszyt, poniższy kod VBA 3 może pomóc.

W kodach VBA „C: \ Users \ DT168 \ Desktop \ KTE \”To ścieżka do folderu. W kodzie VBA 3 „Arkusz1, Arkusz3”to określone arkusze ze skoroszytów, które zostaną połączone w skoroszyt główny. Możesz je zmieniać w zależności od potrzeb.

Kod VBA 2: Scal skoroszyty w jeden (każdy arkusz zostanie nazwany z prefiksem oryginalnej nazwy pliku):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Kod VBA 3: Scal określone arkusze ze skoroszytów do głównego skoroszytu:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. wciśnij F5 klucz do uruchomienia kodu. Następnie wszystkie arkusze robocze lub określone arkusze ze skoroszytów w określonym folderze są jednocześnie łączone w skoroszyt główny.


Z łatwością łącz wiele skoroszytów lub określonych arkuszy skoroszytów w jeden skoroszyt

Na szczęście, Połączyć narzędzie skoroszytu Kutools dla programu Excel znacznie ułatwia łączenie wielu skoroszytów w jeden. Zobaczmy, jak sprawić, by ta funkcja działała przy łączeniu wielu skoroszytów.

Przed złożeniem wniosku Kutools dla programu ExcelProszę pobierz i zainstaluj najpierw.

1. Utwórz nowy skoroszyt i kliknij Kutools Plus > Połączyć. Następnie pojawia się okno dialogowe przypominające, że wszystkie połączone skoroszyty powinny zostać zapisane, a funkcji nie można zastosować do chronionych skoroszytów, kliknij przycisk OK przycisk.

2. w Połącz arkusze kreatora, wybierz Połącz wiele arkuszy ze skoroszytów w jeden skoroszyt opcję, a następnie kliknij Następna przycisk. Zobacz zrzut ekranu:

3. w Połącz arkusze - krok 2 z 3 okno dialogowe, kliknij przycisk Dodaj > filet or Teczka aby dodać pliki Excela, które połączysz w jeden. Po dodaniu plików Excela kliknij koniec i wybierz folder, aby zapisać główny skoroszyt. Zobacz zrzut ekranu:

Teraz wszystkie skoroszyty są połączone w jeden.

W porównaniu z dwoma powyższymi metodami, Kutools dla programu Excel ma następujące zalety:

  • 1) Wszystkie skoroszyty i arkusze są wymienione w oknie dialogowym;
  • 2) W przypadku arkuszy roboczych, które chcesz wykluczyć ze scalania, po prostu odznacz to;
  • 3) Puste arkusze są automatycznie wykluczane;
  • 4) Oryginalna nazwa pliku zostanie dodana jako przedrostek do nazwy arkusza po scaleniu;
  • Aby uzyskać więcej funkcji tej funkcji, odwiedź tutaj.

  Jeśli chcesz mieć bezpłatną wersję próbną (30 dni) tego narzędzia, kliknij, aby go pobrać, a następnie przejdź do wykonania operacji zgodnie z powyższymi krokami.


Kutools dla programu Excel - Pomaga zawsze kończyć pracę z wyprzedzeniem, mieć więcej czasu na cieszenie się życiem
Czy często zdarza Ci się nadrobić zaległości w pracy, brak czasu dla siebie i rodziny?  Kutools dla programu Excel może pomóc ci sobie z tym poradzić 80% Ułóż puzzle Excel i zwiększ wydajność pracy o 80%, daj więcej czasu na opiekę nad rodziną i cieszenie się życiem.
300 zaawansowanych narzędzi dla 1500 scenariuszy pracy sprawi, że Twoja praca będzie łatwiejsza niż kiedykolwiek.
Nie musisz już zapamiętywać formuł i kodów VBA, daj mózgowi odpocząć od teraz.
Skomplikowane i powtarzalne operacje można wykonać jednorazowo w ciągu kilku sekund.
Zredukuj tysiące operacji wykonywanych za pomocą klawiatury i myszy każdego dnia, pożegnaj się z chorobami zawodowymi.
Zostań ekspertem Excela w 3 minuty, pomóż szybko zostać rozpoznanym i awansować na podwyżkę.
110,000 300 wysoce skutecznych ludzi i wybór ponad XNUMX znanych na całym świecie firm.
Spraw, aby Twoje 39.0 $ było warte więcej niż 4000.0 $ szkolenia innych.
Pełna wersja próbna, bezpłatna, 30-dniowa. 60-dniowa gwarancja zwrotu pieniędzy bez powodu.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations