bat调用vbs问题

shanyuhuang 2016-07-25 05:55:29
现在的程序调用关系是:
bat->main vbs->vba
客户需要对vba作时间限制,超过一定时间VBA不结束就强制终止继续执行main vbs的后续代码

因为想不到具体控制时间的方法,所以另外写了个sub vbs(killExcel.vbs),
在main vbs中用shell来杀excel进程的方法终止VBA
所以现在的结构是:
bat->main vbs->sub vbs & vba

现在的问题是,直接从main vbs启动时,该方法有效
从bat启动时,该方法无效,请教各位这是为什么呢?有什么办法能解决这个问题?
求大侠赐教!!拜托了

main vbs结构:

Set wbs = createobject("WScript.Shell")
wbs.Run "cscript killExcel.vbs ",0,false 'killExcel.vbs就是我写的sub vbs
Set xlsApp = createobject("excel.application")
With xlsApp
.DisplayAlerts = False
.EnableEvents = False ' 禁止宏自启动(事件停止).Interactive = False
.workbooks.open "c:\a.xlsm"
.Visible = False
On Error Resume Next
.run "a.xlsm!test" '执行vba
.EnableEvents = True
On Error Resume Next
.workbooks.Close
.DisplayAlerts = True
End With
Set xlsApp = Nothing



killExcel.vbs结构

timeLimitInMins = 1
wscript.sleep timeLimitInMins*60*1000
Call Close_Process()

Sub Close_Process()
On Error Resume Next
For Each Process In GetObject("winmgmts:").ExecQuery("select * from Win32_Process where name='EXCEL.EXE'")
Process.Terminate (0)
Next
End Sub




...全文
230 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanyuhuang 2016-07-25
  • 打赏
  • 举报
回复
我知道问题出在哪里了……

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧