在Excel vbscript中创建包含当前文件夹名称的新Excel文件
我不熟悉vbscript,但想知道如何在格式为“[文件夹名称]\u Summary.xlsx”的文件夹中自动创建新的excel文件?我正在创建一个文件,但我必须硬编码路径。是否有方法在文件夹中自动创建新的excel文件 以下是我迄今为止所做的:在Excel vbscript中创建包含当前文件夹名称的新Excel文件,excel,file,vbscript,Excel,File,Vbscript,我不熟悉vbscript,但想知道如何在格式为“[文件夹名称]\u Summary.xlsx”的文件夹中自动创建新的excel文件?我正在创建一个文件,但我必须硬编码路径。是否有方法在文件夹中自动创建新的excel文件 以下是我迄今为止所做的: Sub Testing() strFileName = "F:\U029\U029_Excel\U029_Excel_Summary.xlsx" Set objExcel = CreateObject("Excel.Application") obj
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
您可以尝试使用此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
'***********************************************************
确保vbs文件位于要在其中创建excel文件的文件夹中。运行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:
创建一个包含以下vba代码的xlsm文件(另请参见所附图像)。将此xlsm文件放在要创建excel文件的文件夹中,打开并运行该过程。创建excel文件后,可以从该文件夹中删除此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
您可以根据需要进一步修改代码/逻辑。我已经尝试了此代码,并且正在工作。我收到一个编译错误,“外部过程无效”“@Joe这是用vbscript工作的,不是用VBA,我在发布它之前已经测试过了,它可以用vbscript工作!谢谢你的解决方案。如何让此代码在VBA excel工作表中工作?我将您的代码粘贴到excel中的VBA项目中,但出现错误“外部过程无效”。谢谢