在Excel vbscript中创build包含当前文件名的新Excel文件

我是新来的VBScript,但想知道如何自动创build一个新的Excel文件格式为“[文件夹名称] _Summary.xlsx?我得到一个文件被创build,但我不得不硬编码有没有办法自动在文件夹中创build新的Excel文件?

这是我到目前为止:

Sub Testing() strFileName = "F:\U029\U029_Excel\U029_Excel_Summary.xlsx" Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs (strFileName) objExcel.Quit End Sub 

确保您的vbs文件放置在您要创buildexcel文件的文件夹中。 运行vbs文件后,可以从该文件夹中删除它。 在vbs文件里使用这个代码:

 call fn_createExcel() Function fn_CreateExcel() Dim objFso, objExcel, objWorkbook Set objFso = CreateObject("Scripting.FileSystemobject") strTemp = objFso.GetAbsolutePathName("") tempArr=Split(strTemp,"\") strFileName= strTemp&"\"&tempArr(ubound(tempArr))&"_Summary.xlsx" Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs strFileName objExcel.Quit Set objExcel = Nothing Set objFso = Nothing End Function 

编辑2:创build一个具有如下vba代码的xlsm文件(也见附图)。 把这个xlsm文件放在要创buildexcel文件的文件夹中,打开并运行该程序。 Excel文件创build后,您可以从该文件夹中删除此xlsm文件。

 Function fn_CreateExcel() Dim objExcel, objWorkbook, strFileName, strTemp strTemp = Application.ActiveWorkbook.Path tempArr = Split(strTemp, "\") strFileName = strTemp & "\" & tempArr(UBound(tempArr)) & "_Summary.xlsx" Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs strFileName objExcel.Quit Set objExcel = Nothing End Function 

您可以按照您的要求进一步修改代码/逻辑。 我试过这个代码,正在工作。 在这里输入图像描述

你可以尝试这个VBScript:

 Call Create_New_Excel_File() '*********************************************************** Sub Create_New_Excel_File() set fso = CreateObject("Scripting.FileSystemObject") Path_Folder = fso.GetParentFolderName(WScript.ScriptFullName) Array_Folder_Name = split(Path_Folder,"\") Folder_Name = Array_Folder_Name(Ubound(Array_Folder_Name)) strFileName = Path_Folder & "\" & Folder_Name & "_Summary.xlsx" Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs(strFileName) objExcel.Quit End Sub '***********************************************************