如何用VBA调用批处理文件? 5
我有一个批处理文件,要用VBA来调用并执行批处理!批处理是这样的“type*.csv>>E:\汇总工具\汇总结果.csv”...
我有一个批处理文件,要用VBA来调用并执行批处理!批处理是这样的“type *.csv>>E:\汇总工具\汇总结果.csv”
展开
展开全部
额,不太明白题主说的具体情况,我遇到2种。
1.批处理文件的代码是固定,要么通用性强,要么不跟随变量存在变化
这种情况下,直接调用批处理文件就好了。
Shell "X:\YY\ZZ\abc.bat"
2.批处理文件的代码是变化的,需要在VBA执行过程中写出来,这种情况就比较复杂啦
用Print命名写程序,然后也是Shell来执行啦,下面是我写的实际例子
Open strPNAME For Output As #nFNO
Print #nFNO, "open xx.xx.xxx.xx" 'open 主机名
Print #nFNO, "user" '用户名
Print #nFNO, "abc" '密码
'循环,根据Lot 数量,写相应行数的代码
For i = 7 To WorksheetFunction.CountA(Worksheets("RS").[J:J]) + 4
MakeSureDirectoryPathExists "D:\" & Worksheets("RS").Cells(i, "L") & "\" & Worksheets("RS").Cells(i, "J") & "\" '创建文件夹
localfd = "D:\" & Worksheets("RS").Cells(i, "L") & "\" & Worksheets("RS").Cells(i, "J")
'FTP 路径确定
rsraw = Worksheets("RS").Cells(i, "J") & "*.csv"
pth = Worksheets("RS").Cells(i, "M").Value
px = Format(Worksheets("RS").Cells(i, "J"), ">")
p0 = Mid(px, 1, 4)
p1 = Mid(px, 5, 2)
p2 = Mid(px, 7, 2)
p3 = Mid(px, 9, 2)
ftpfolder = "/data1/on/exp/array/rs/" & pth & "/" & p0 & "/" & p1 & "/" & p2 & "/" & p3
'CD到Ftp目录,然后下载到本地,匹配条件为jpg文件
Print #nFNO, "cd """; ftpfolder; """"
Print #nFNO, "lcd """; localfd; """"
Print #nFNO, "bin"
Print #nFNO, "mget """; rsraw; """"
Next i
Print #nFNO, "bye"
'文件完成
Close #nFNO
ShellAndWait "ftp -v -i -s:" & strPNAME
以上,题主参考下吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询