< návrat zpět
MS Excel
Téma: Úprava makra pro sloučení xls souborů
Zaslal/a RD1 4.3.2017 15:21
Hezký den,
na zdejším fóru jsem našel perfektně fungující makro, které slouží pro sloučení více xls souborů do jednoho. Makro funguje perfektně za předpokladu, že název listu, který se má slučovat, je stejný jako název souboru. Narazil jsem ovšem na problém, že často slučuji xls soubory, jejichž název má např. 45 znaků, ale maximální délka názvu listu je 31 znaků a zbývající znaky excel ořízne. Program, který mi xls soubory produkuje pojmenovává list podle názvu souboru, takže ponechání názvu List 1 bohužel není možné. Soubory xls, které jsou slučované obsahují vždy pouze jeden list, na kterém je jeden řádek s hlavičkami sloupců a jeden řádek s daty, struktura sloupců je pokaždé stejná. Jelikož bohužel nemám s tvorbou maker v excelu žádné zkušenosti, chtěl bych se zeptat, jestli by nebyl někdo ochotný přiložené makro upravit, aby fungovalo i v případě, že název listu není shodný s názvem souboru, respektive že je shodných pouze prvních 31 znaků. Předem moc děkuji za odpovědi.
Příloha: 35260_transfer-new.zip (29kB, staženo 105x)
syd(4.3.2017 21:05)#035261 Zkuste prilozeny soubor.
Ze zdrojoveho souboru bude brat prvni list v poradi, bez zadne vazby na nazev sesitu ci listu.
Nebylo testovano, tak dejte vedet.
syd
Příloha: 35261_transfer-new_sss.zip (29kB, staženo 157x) citovat
RD1(5.3.2017 9:41)#035264 Dobrý den,
makro se sice rozběhne, po chvíli ale zobrazí následující chybu.
Příloha: 35264_error.png (4kB, staženo 80x)
citovat
syd(5.3.2017 21:53)#035272 Tak mate spatne nastavene parametry v macro souboru nebo zdrojove soubory.
Ja si vytvoril 2 soubory (v obou celkem 2 radky, kde prvni radka je hlavicka, a celkem 4 sloupce) a macro probehne perfektne.
Zkontrolujte, ze mate spravne nastaveno... Jinak bude treba prilozit alespon 2 zdrojove soubory na ukazku.
syd
citovat
RD1(6.3.2017 17:07)#035289 Dobrý den,
v příloze zasílám ukázkové soubory. V parametrech makra nastavuji pouze cesty a to, že se bude pracovat s xls soubory.
Příloha: 35289_data_ukazka.zip (3kB, staženo 106x) citovat
syd(6.3.2017 18:06)#035290
RD1(6.3.2017 19:51)#035294 Mockrát děkuji za úpravu makra, už mi také funguje. Problém byl v nastavení cesty výstupu. Ještě jednou děkuji
citovat
Vrbic00(30.3.2017 9:39)#035863 Ahoj, také používám tenhle soubor na slučování, ale z ničeho nic mě to přestalo fungovat. Používám to jednou za měsíc a tak 4 měsíce mi to šlo. Tento měsíc mě to nejde sloučit a nejdou sloučit ani ty staré data. Chyby jako cestu, příponu jsem kontroloval.
Píše to chybu: Run-time error 432
File name or class name not found during Automation operation.
Když kliknu na debug hodí mě to na tento řádek:
Set SWbk = GetObject(aItem)
nějaké rady?
Děkuji.
citovat
elninoslov(30.3.2017 13:36)#035874 Je tam použitý ProgressBar doplnok, a komu sa nechce inštalovať MSCOMCTL.OCX, môže použiť túto náhradu priebehu pomocou Labelu a TextBoxov.
Prečo to stojí na GetObject(aItem) sa mi nedarí nasimulovať.
Možno mu chýba nejaká referencia, no akú to potrebuje sa mi nedarí zistiť.
Všetky moje Referencie sú:
Visual Basic For Applications
Microsoft Excel 16.0 Object Library
Microsoft Forms 2.0 Object Library
OLE Automation
Microsoft Office 16.0 Object Library
Office 2016 x64 Pro SK a fičí to.
Nahraďte ten riadok zatiaľ týmto
Set SWbk = Workbooks.Open(aItem, False)
ale bude to pomalšie.
Příloha: 35874_transfer-new_sss.zip (26kB, staženo 92x) citovat