将VBS应用于当前目录中的文件

我有一些VBS代码用于将Excel格式应用于电子表格:

Set xlObj = CreateObject("Excel.Application") Set xlFile = xlObj.WorkBooks.Open("C:\Documents and Settings\user\forms.xlsx") xlObj.Application.DisplayAlerts = False For Each Worksheet In xlFile.Worksheets dPriorWorkday = xlObj.Application.WorksheetFunction.WorkDay(Now, -1) Worksheet.Name = "Forms received " & Year(dPriorWorkday) & "-" & Right("0" & Month(dPriorWorkday),2) & "-" & Right("0" & Day(dPriorWorkday),2) With Worksheet.Cells.Font .Name = "Arial" .Size = 8 End With Next xlFile.Close True xlObj.Quit 

我使用.bat文件在.xlsx工作表上运行此VBS,所有3个文件位于同一目录中。

我想要做的是更改VBS格式应用到与.bat和.vbs文件位于同一目录中的.xlsx文件,以便我可以删除直接文件path“C:\ Documents and Settings \用户\”

我努力了:

 Workbooks.Open Filename:=ThisWorkbook.Path & "\forms.xlsx" 

但它不起作用,我假设,因为这是从工作簿本身调用.vbs。

有没有类似的东西可以用来将.vbs应用于与.vbs相同的目录中的文件,而不使用完整的文件path?

我想要做的是更改VBS格式应用到与.bat和.vbs文件位于同一目录中的.xlsx文件,以便我可以删除直接文件path“C:\ Documents and Settings \用户\”

如果所有的文件都在同一个目录下,那就用这个

 Set WshShell = CreateObject("WScript.Shell") strCurDir = WshShell.CurrentDirectory Set xlObj = CreateObject("Excel.Application") Set xlFile = xlObj.Workbooks.Open(strCurDir & "\forms.xlsx") 

更多关于CurrentDirectoy

编辑

Ekkehard.Horner的回答更加贴切,可以处理从不同目录调用vba的情况。 在这种情况下, CurrentDirectoy显然不会给出预期的path。

如果您想要select“与.bat和.vbs文件相同的目录”(无论您调用脚本的文件夹还是(计算机)对.CurrentDirectory的更改),都应该使用WScript.ScriptFullName:

 Option Explicit Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject") Dim goWS : Set goWS = CreateObject("WScript.Shell") Wscript.Echo "CD", goWS.CurrentDirectory Wscript.Echo "FS", goFS.GetAbsolutePathName(".") goWS.CurrentDirectory = "c:\temp" Wscript.Echo "CD", goWS.CurrentDirectory Wscript.Echo "FS", goFS.GetAbsolutePathName(".") Wscript.Echo "SD", goFS.GetParentFolderName(WScript.ScriptFullName) 

输出:

 DNV35 C:\Documents and Settings\eh cscript 31.vbs CD C:\Documents and Settings\eh FS C:\Documents and Settings\eh CD c:\temp FS C:\Temp SD C:\Documents and Settings\eh DNV35 C:\Documents and Settings\eh cd .. DNV35 C:\Documents and Settings cscript eh\31.vbs CD C:\Documents and Settings FS C:\Documents and Settings CD c:\temp FS C:\Temp SD C:\Documents and Settings\eh