打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA中调用SHELL心得

VBA中调用SHELL心得

2010-08-21 10:49:38|  分类: Excel自动化 |  标签: |字号 订阅

在VBA中,有人可能会用到SHELL来调用外部批处理文件。
在实践过程中,往往SHELL调用批处理的结果与DOS下执行的效果不一样。这是什么原因呢?
老朽多年实践的经验告诉我,在使用SHELL调用DOS批处理时,必须在代码中做好预处理:
在调用SHELL之前,必须要通过以下步骤:(以在E:盘根目录下操作为例)
1、强制改变当前的驱动器: ChDrive "E"
2、强制改变默认的工作目录:chdir "E:\"
完成以上动作之后,再来调用E:\的批处理文件:shell "e:\234.bat"
这样执行的效果就和DOS下执行的效果一致。
原因在哪?这是因为SHELL的工作切入点是在Application的默认工作目录中,也就是说,除非在批处理中强行界定目标路径,否则,SHELL执行批处理时永远都是Application的默认工作目录下进行。
而Application的默认工作目录一般都是“我的文档”。你可以这样试验一下,在E:\创建一个批处理234.bat,内容是 dir >123.inf ,就是将dir列表写进到123.inf文件中,然后在立即窗口中shell "E:\234.bat" ,之后再用windows的搜索功能,搜索一下刚刚生成的123.inf文件,你就会发现这个文件是在“我的文档”中,而不是在E:\下,而在DOS下直接执行234.bat,则结果文件就自然在E:\下。
如果是在立即窗口中,依次执行
ChDrive "E"
chdir "E:\"
shell "e:\234.bat"
你再看一下,生成的文件就在E:\下了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA基础入门(30)如何用VBA调用Bat批处理文件
dos命令在vba中应用
autorun.inf文件夹如何删除
搭建UEFI开发环境/编译uefi shell/编译disk tool
使用调用外部程序函数实现API函数高级功能
cmd静默运行_关于脚本:以静默模式运行CMD或BAT
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服