2017-05-30 66 views
1

我是新來的VBScript當前foler名新的Excel文件,但想知道如何自動創建一個新的Excel文件,這些的格式爲「[文件夾名稱] _Summary.xlsx?我的文件夾中。我得到一個文件被創建,但我不得不硬編碼的路徑是有辦法的文件夾中自動創建新的Excel文件創建包含在Excel中的VBScript

這裏是我迄今:

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 

回答

2

確保您的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 

您可以按照您的要求進一步修改代碼/邏輯。我試過這段代碼並且正在工作。 enter image description here

+0

感謝您的解決方案。我怎樣才能讓這個代碼在VBA excel工作表中工作?我將你的代碼粘貼到Excel中的VBA項目中,但得到了錯誤「無效的外部過程」。謝謝! – Joe

+1

@Joe查看更新的答案。 – Gurman

1

你可以給這個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 
'*********************************************************** 
+0

我得到一個編譯錯誤,「無效的外部程序」。 – Joe

+1

@Joe這VBScript的工作與VBA不 我已經發布前測試,它使用VBScript的作品! – Hackoo