Mám vo svojom miestnom zošite povolený makrozložky. Tento zošit obsahuje celkom 7 pracovných hárkov. Posledný list s názvom „AnsSheet“. Chcem uložiť posledný hárok (iba AnsSheet) do rovnakého umiestnenia priečinka s upraveným názvom. Tu je kód, ktorý používam a ktorý neprináša požadovaný výsledok.
Mohli by ste, prosím, viesť?
Sheets("AnsSheet").Select
Set wb = Workbooks.Add
ThisWorkbook.Sheets("AnsSheet").Copy Before:=wb.Sheets(1)
ActiveSheet.SaveAs Filename:=ActiveWorkbook.Path & "WF_Macro_" & Format(Date, "DD-MMM-YYYY") & ".xls"
odpovede:
1 pre odpoveď č. 1Vaše meno súboru bude neúplné ako ActiveWorkbook.Path
bude prázdne. ActiveWorkbook bude váš novo vytvorený zošit a ako ste ho ešte neuložili, Path
bude prázdny. použitie ThisWorkbook
namiesto toho získať cestu aktuálneho zošita.
Nie som si istý, či ActiveSheet.SaveAs
metóda bude fungovať, ale ja som sa na to pozrel. Osobne by som použil Workbook.SaveAs
spôsob uloženia nového zošita. Namiesto pridania „.xls“ na koniec názvu súboru by ste tiež mali určiť typ súboru pomocou parametra FileFormat Enum MSDN FileFormat Enum
Aktualizoval som váš kód nižšie s komentármi, aby som zistil, čo sa deje:
Dim wb As Excel.Workbook
"\ Create a new Workbook with only one Worksheet
Set wb = Workbooks.Add(xlWBATWorksheet)
"\ Copy Sheet to start of new Workbook
ThisWorkbook.Sheets("AnsSheet").Copy Before:=wb.Sheets(1)
"\ Turn off alerts and delete the unused sheet, turn alerts back on
Application.DisplayAlerts = False
wb.Sheets(2).Delete
Application.DisplayAlerts = True
"\ Save new Workbook as a standard Workbook
wb.SaveAs Filename:=ThisWorkbook.Path & "WF_Macro_" & Format(Date, "DD-MMM-YYYY"), _
FileFormat:=xlWorkbookNormal