VBScript文件的相对path

我有一个VBScript文件来打开一个Excel文件并运行一个macros。 此Excel文件位于与VBScript文件相同的文件夹中。 我想使用相对path来调用它,以便我可以移动该文件夹,而无需重写脚本中的path。 现在我的VBScript看起来像这样:

Option Explicit On Error Resume Next ExcelMacroExample Sub ExcelMacroExample() Dim xlApp Dim xlBook Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\Users\Ben\Desktop\GeocodingBatchFile\Files\GeocodingStart.xlsm") xlApp.Run "Export" xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub 

而不是使用完整的文件path,如果我可以做这样的事情将是很好的:

  Set xlBook = xlApp.Workbooks.Open(".\GeocodingStart.xlsm") 

您可以使用FileSystemObject来获取脚本文件的path,就像这样

 Sub ExcelMacroExample() Dim xlApp Dim xlBook Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim fullpath fullpath = fso.GetAbsolutePathName(".") Set fso = Nothing Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(fullpath & "\GeocodingStart.xlsm") xlApp.Run "Export" xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub 

尝试这个…

  Dim oFSO Set oFSO = CreateObject("Scripting.FileSystemObject") sScriptDir = oFSO.GetParentFolderName(WScript.ScriptFullName) Set xlBook = xlApp.Workbooks.Open( sScriptDir & "\GeocodingStart.xlsm")