无法使用当前文件夹目录运行 vbs

  • 本文关键字:运行 vbs 文件夹 vbscript
  • 更新时间 :
  • 英文 :


这是我第一次体验vbs。我尽量保持我的问题简短。当我用.bat运行它时,这个有效

Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
 Dim xlApp 
 Dim xlBook 
 Set xlApp = CreateObject("Excel.Application") 
 Set xlBook = xlApp.Workbooks.Open("C:.....RunScript.xlsm", 0, 
 True) 
 xlApp.Run "Auto_Open"
 xlApp.Quit 
 Set xlBook = Nothing 
 Set xlApp = Nothing 
End Sub 

这个有效(向我显示我的文件当前目录(:

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
sScriptDir = oFSO.GetParentFolderName(WScript.ScriptFullName)
Wscript.Echo sScriptDir & "RunScript.xlsm"

但是如果我将它们结合起来,它不起作用

Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
 Dim xlApp 
 Dim xlBook 
 Dim oFSO
 Set oFSO = CreateObject("Scripting.FileSystemObject")
 sScriptDir = oFSO.GetParentFolderName(WScript.ScriptFullName)
 Set fileDirectory = sScriptDir & "RunScript.xlsm"
 Set xlApp = CreateObject("Excel.Application") 
 Set xlBook = xlApp.Workbooks.Open(fileDirectory, 0, 
 True) 
 xlApp.Run "Auto_Open"
 xlApp.Quit 
 Set xlBook = Nothing 
 Set xlApp = Nothing 
End Sub 

就像我说的,谢谢戴夫。这行得通。但是我发现了另一个问题,现在在RunScript.xlsm中使用vbA。此代码适用于之前的 vbS

Sub Auto_Open()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
    ActiveWorkbook.SaveAs Filename:= _
        "C:...MyCSV.csv" _
        , FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = True
ThisWorkbook.Saved = True
Application.Quit
End Sub

但是,如果我在这里更改路径,它只会在我运行 RunScript.xlsm起作用,但在运行 vbS 时不起作用:

Sub Auto_Open()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
Dim relativePath As String
relativePath = Application.ActiveWorkbook.path & "MyCSV.csv"
ActiveWorkbook.SaveAs Filename:=relativePath, FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = True
ThisWorkbook.Saved = True
Application.Quit
End Sub

我认为这是活动工作簿的原因,我已经尝试了这个工作簿,并且我在没有应用程序的情况下尝试过。

最新更新