我编写了一个Visual Basic脚本来执行Excel宏。我想动态设置.xlsm文件的位置。我使用FileSystemObject来获取当前目录。它返回C:\ Windows \ System32,但是我需要.vbs文件所在的目录。
我尝试使用FileSystemObject和WScript获取当前目录,但是没有成功。
' Create a FileSystemObject to get the current directory
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = fso.GetAbsolutePathName(".")
myExcelWorker.DefaultFilePath = strPath
' Open the Workbook specified on the command-line
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = strPath & "\Data center Wattsight long term.xlsm"
Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB)
预期的行为是打开Excel文件。但是我得到一个错误:
答案 0 :(得分:2)
您正在将当前工作目录与脚本的位置混淆。两者并不相同。
这两个都将为您提供当前工作目录:
CreateObject("WScript.Shell").CurrentDirectory
CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
这将为您提供脚本的位置:
CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)