/ / Ak chcete uložiť jeden pracovný hárok v Exceli do zdrojového priečinka s požadovaným menom - excel, excel-vba, vba

Ak chcete uložiť jeden pracovný hárok v programe Excel do zdrojového priečinka s požadovaným názvom - excel, excel-vba, vba

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ď č. 1

Vaš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