你的变量中有许多都是可变类型(variable),应该为每一个变量指定类型,而不是统一的一行只指定一个类型!
VBA的宏管理是以过程(sub)方式管理的,对于任意一个宏,只有放在类似与下面的这两行代码之间,才可以被认为是可以运行的宏。
public sub I_am_a_sub()
end sub
其中I_am_a_sub()是过程名,你可以任意指定,但要符合vb命名规则。
宏代码管理时被放在一个指定对象比如application、workbook或者worksheet中,你的Range(“B3”)默认调用的是该对象的(活动工作表的)B3单元格,如果想指定其他的工作表,必须加前缀worksheets(n)range("B3"),n是一个正整数
另外excel有自己的vba编辑器,千万不要指望你的代码在VB60什么的编辑了可以挂到excel上执行,那样失败的可能性很大。
private function checkexeisrun(byval exename as string) as boolean
dim ps
'枚举进程
For Each ps In GetObject("winmgmts:\\\root\cimv2:win32_process")instances_
'循环进程
If ucase(psname) = ucase(exename) then
checkexeisrunning = True
exit function
end If
next
end function
private sub command1_click()
shell "Aexe" '调用Aexe
timer1enabled=true '启动计时器
end sub
private sub timer1_timer()
if checkexeisrun("aexe")=false then '"aexe"就是程序名
'你要执行的命令
end if
end sub
'计时器interval属性越小响应时间就越快,但不要调太小,否则可能会无响应。
以上就是关于VB运行时显示“外部过程无效”,请赐教修改谢谢全部的内容,包括:VB运行时显示“外部过程无效”,请赐教修改谢谢、怎么让vb调用一个外部程序(A.exe),A.exe关闭后自动再执行另一条命令、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)