Excel VBA - uložit soubor jako xlsx
Ahoj,
potřebuju radu. Už se tu s tím peru nějakou dobu
Ve vba používám k ukládání souboru metodu SaveCopyAs přesněji ActiveWorkbook.SaveCopyAs Filename:=newFile & ".xlsm".
Potřeboval bych však soubor uložit bez maker tudíž jako *.xlsx. Pokud to natvrdo vložím do kodu soubor se sice uloží, ale nejde otevřít. Excel vřeští, že přípona souboru není platná.
Nevěděl by někdo jak dosáhnout kýženého výsledku?
Díky
win001.htm
Dík za reakci. O metodě SaveAs s parametrem Feleformat vím. Bohužel tuto metodu nemůžu použít. Sešit obsahuje maker více a pokud by uživatel takto sešit uložil už v něm nelze dále pracovat. Proto sem se ptal na metodu SaveCopyAs.
Ještě včera (vlastně dneska) než sem šel spát sem našel řešení - metodou SaveCopyAs uložím kopii souboru s podporou maker tento, soubor otevřu znovu uložím metodou SaveAs bez maker a soubor s makry nechám smazal příkazem kill.
Celé se mi to však zdá nějak kostrbaté ale zatím jediné funkční řešení. Pokud někoho napadne lepší řešení sem s ním.
Takové věci (pokud se mi nechce hledat v dokumentaci) řeším tím, že si zapnu záznam makra, udělám, co potřebuju, ukončím záznam a edituju makro. Kód mám hotový, stačí jej poupravit.
Vo VBA vytvoríš nový zošit a z pôvodného z neho prekopíruješ len to, čo chceš aby v ňom zostalo - výsledok potom uložíš. Viem, že to nie je úplne to, čo si si predstavoval, ale toto je štandardný postup a jednoduchšie to naozaj nejde.
Chlapi díky za reakce.
Problémem je, že já chci celý sešit s několika listy pouze bez maker. Pokud bych potřeboval jen část je to nejlepší způsob. Rozhod sem se, že zůstávám u postupu, který sem použil (uložit kopii jako xlsm, otevřít -> uložit jako xlxs a soubor xlsm smazat). Sice mi tento postup připadal jako drbat se levou rukou za pravým uchem, ale pokud není lepší možnosti budiž.
přečetl jsem si to tak 3x a nejsem si 100% jistý z čeho se vychází a co má být výsledek, případně jaké mezikroky v práci se souborem jsou nežádoucí. původní soubor s makry má být zachován a z něj se má vygenerovat co nejjednodušeji soubor bez maker.
otevřu .xlsm, ve kterém je makro, které provede uložení do nového souboru .xlsx (bez maker)
Nevýhodou je ruční potvrzení uživatelem, že to opravdu chce bez maker. Nepátral jsem, jestli to dialogové okno lze potlačit, aby se to provedlo automaticky.
Application.DisplayAlerts = False 'Potlačení dialogových oken, vhodné v závěru zase povolit