VBA调用SHELL脚本并等待程序结束

本文提供了一段VBA代码,用于同步调用Shell脚本并等待其结束。通过修改代码中的本地路径,可以应用于任意bat文件。在运行VBA后,会等待bat脚本执行完毕,然后显示'RUN END'提示框。
摘要由CSDN通过智能技术生成

VBA调用Shell是异步处理,以下为同步处理代码,注释写的还行,就不多说了。可以直接拿到本地DEBUG以下,注意将下面的本地路径替换为你要运行的bat文件。

' 引入外部函数 PtrSafe用来避免不兼容问题(32位,64位  版本等)

'取得能够对进程进行操作的处理器,第一个参数决定能够进行哪些操作 第三个参数传入进程PID(一个处理器只对应传入PID参数的这一个进程)
Private Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
 '拿到进程的运行状态并传递给第二个参数。第一个参数为处理器
Private Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
 
Private Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


 
Const PROCESS_QUERY_INFORMATION = &H400 '十进制是1024
 
Const STILL_ALIVE = &H103  '十进制529 表明进程仍然存活

Sub wocao()
  '运行脚本并获取进程ID,第二个参数决定CMD窗口如何显示,此处为最小化。
  pid = Shell("C:\Users\82138\Desktop\process.bat
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值