Dovolil som si trocha upraviť kód zo stránky host-a, čím sa na rozdiel od vzoru:
- netreba starať, kde sa nachádzajú súbory, je potrebné len zdrojové a cieľový súbor umiestniť do jedného adresára.
- súbory musia byť typu xlsx. Ak sú xls, je treba prepísať v kóde xlsx na xls
- hárky sa kopírujú v poradí v akom sú zdrojové súbory v adresári, pričom prvý prekopírovaný hárok sa nachádza za posledným hárkom cieľového (= sumarizačného) súboru
- kopírujú sa len prvé hárky zdrojových súborov (teda pokiaľ zdrojový súbor obsahuje viac hárkov, ale potrebujeme len prvý). Kód zo stránky kopíroval všetky, t.j. i prípadné nadbytočné prázdne hárky v zdroji)
Toto makro musí byť v cieľovom súbore, takže cieľový súbor musí byť uložený ako typ xlsm !
Spusti makro a vyčkaj oznam "Hotovo"
Sub ZberHarkov()
Application.ScreenUpdating = False
Path = ActiveWorkbook.Path
Filename = Dir(Path & "\*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & "\" & Filename
ActiveWorkbook.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Workbooks(Filename).Close
Filename = Dir()
Loop
MsgBox "Hotovo", vbInformation
End Sub
P.S. Kvôli prehľadnosti by mali mať zdrojové hárky rozumné a odlišné názvy, inak sa vo výsledku nebudeš vedieť orientovať
A zváž aj to, čo hovorí čitateľ... t.j. význam práce s 300 hárkovým zošitom...
Napr u hárkov, ktoré predstavujú dni roka... Nie je rozumné urobiť 1 ročný súbor s 365 dennými hárkami ale 12 mesačných súborov po cca 30 denných hárkov a pod
https://www.extendoffice.com/documents/excel/456-combine-multiple-workbooks.html
Případně další rady a postupy: Google - excel merge files
Dovolil som si trocha upraviť kód zo stránky host-a, čím sa na rozdiel od vzoru:
- netreba starať, kde sa nachádzajú súbory, je potrebné len zdrojové a cieľový súbor umiestniť do jedného adresára.
- súbory musia byť typu xlsx. Ak sú xls, je treba prepísať v kóde xlsx na xls
- hárky sa kopírujú v poradí v akom sú zdrojové súbory v adresári, pričom prvý prekopírovaný hárok sa nachádza za posledným hárkom cieľového (= sumarizačného) súboru
- kopírujú sa len prvé hárky zdrojových súborov (teda pokiaľ zdrojový súbor obsahuje viac hárkov, ale potrebujeme len prvý). Kód zo stránky kopíroval všetky, t.j. i prípadné nadbytočné prázdne hárky v zdroji)
Toto makro musí byť v cieľovom súbore, takže cieľový súbor musí byť uložený ako typ xlsm !
Spusti makro a vyčkaj oznam "Hotovo"
P.S. Kvôli prehľadnosti by mali mať zdrojové hárky rozumné a odlišné názvy, inak sa vo výsledku nebudeš vedieť orientovať
A zváž aj to, čo hovorí čitateľ... t.j. význam práce s 300 hárkovým zošitom...
Napr u hárkov, ktoré predstavujú dni roka... Nie je rozumné urobiť 1 ročný súbor s 365 dennými hárkami ale 12 mesačných súborov po cca 30 denných hárkov a pod
MOOOC děkuji, funguje perfektně