Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel vbscript中创建包含当前文件夹名称的新Excel文件_Excel_File_Vbscript - Fatal编程技术网

在Excel vbscript中创建包含当前文件夹名称的新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

我不熟悉vbscript,但想知道如何在格式为“[文件夹名称]\u Summary.xlsx”的文件夹中自动创建新的excel文件?我正在创建一个文件,但我必须硬编码路径。是否有方法在文件夹中自动创建新的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

您可以尝试使用此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项目中,但出现错误“外部过程无效”。谢谢