将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