vba shell 调用和vba 文件操作

本文详细介绍了在VBA中如何使用Shell函数进行批处理调用,并强调了在调用前需要先改变当前驱动器和工作目录的重要性。同时,展示了VBA进行文件操作的实例,包括创建、删除文件夹,保存邮件附件到指定路径等。
摘要由CSDN通过智能技术生成

在调用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:/下了。

 

Option Explicit

'version 0.1 2009/08/05 add Attached_SaveAs

Sub Attached_SaveAs()

'执行前,在工具,引用中加入"Microsoft   Scripting   Runtime"
    Dim fso As New FileSystemObject
    Dim fldr As Folder
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FolderExists("d:/GDS_HUB_Report_Used_by_Rita") Then             '判断是否存在这个文件夹
        fso

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值