1
我創建了一個創建兩個文件的vba腳本。 .vbs文件用於打開外部程序併發送按鍵。該程序通過.bat文件調用。外部程序(Mathcad)打開,但不會執行後面的操作(sendkeys)。我怎麼才能調試.vbs文件,除非有人能發現錯誤?VBA - 創建.vbs和.bat來向外部程序發出擊鍵
Public Sub Execute_Mathcad()
Dim ExportPath As String
Dim iFileNum As Long
Dim iFileNumvbs As Long
Dim wsActive As Worksheet
Dim sTempFileName As String
Dim sTempFileNamevbs As String
Set wsActive = ActiveSheet
ThisWorkbook.Save
'Create batch file
With wsActive
'create .vbs file for keystrokes (called in .bat file)
ExportPath = "C:\Temp\"
sTempFileNamevbs = ExportPath & Trim(.Name) & ".vbs"
iFileNumvbs = FreeFile
Open sTempFileNamevbs For Output As #iFileNumvbs
Print #iFileNumvbs, "Set WshShell = WScript.CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")"
Print #iFileNumvbs, "WshShell.Run(" & Chr(34) & "C:\Users\blah.xmcd" & Chr(34) & ")"
Print #iFileNumvbs, "WScript.Sleep 10000"
Print #iFileNumvbs, "WshShell.AppActivate"; Spc(1); "WshShell"
Print #iFileNumvbs, "WScript.Sleep 5000"
Print #iFileNumvbs, "WshShell.SendKeys"; Spc(1); """^{F9}"""
'create .bat file
sTempFileName = ExportPath & Trim(.Name) & ".bat"
iFileNum = FreeFile
Open sTempFileName For Output As #iFileNum
Print #iFileNum, "@Echo off"
Print #iFileNum, "wscript"; Spc(1); """C:\Temp\Results.vbs"""
End With
Close #iFileNum
Close #iFileNumvbs
'run batch file
retVal = Shell(sTempFileName, vbHide)
'this returns an error if sTempFileName is incorrect
If retVal = 0 Then
MsgBox "An Error Occured"
Close #FileNumber
End
End If
'exit Excel using VBA command
Application.Quit
End Sub
你可以發佈它創建的BAT文件嗎? – 2014-09-01 14:00:29
嗨馬克,它包含在上面的腳本,除非我誤解了?'打印#iFileNum,「@Echo關」 打印#iFileNum,「wscript」; SPC(1); 「」 「C:\ TEMP \ Results.vbs」 「」'。生成的批處理文件代碼如下所示:@Echo off wscript「C:\ Temp \ Results.vbs」「 – 2014-09-01 14:05:49
您已發佈創建BAT的代碼,而不是BAT本身。 – 2014-09-01 14:07:48