2013-03-11 59 views
1

我想从主机中自动提取数据,我尝试了下面的解决方案,但没有奏效。相反,它会擦除​​FtpLogin2.bat文件的内容。如何通过在excell中按vba按钮来运行ftp.bat?

Private Sub Workbook_Open() 
Call Shell(Environ$("COMSPEC") & " /c D:\user\MyDocs\Downloads_FTP\FtpLogin2.bat",  
vbNormalFocus) 
End Sub 

的ftplogin2.bat

@ftp -i -s:"%~f0"&GOTO:EOF 
open ip user 
password ped 
get 'mainframe_dataset' pc_dataset.txt 

我试图做的是建立一种形式,我有一个输入内容。该输入是我想要提取的大型机文件的名称。该数据shoukld然后出现在该excel book的另一个工作表中。我的意思是通过一个文本字段和一个提交按钮来自动执行该过程,该按钮应该触发宏中的FTP。

有没有那样做?

+1

什么是ftplogin2.bat?如果只将echo hello> log.txt放在该文件中,会发生什么情况?你有没有得到一个log.txt文件? – rene 2013-03-11 19:05:08

+0

@ftp -i -s: “%〜F0” 与GOTO:EOF 开放的IP 用户 密码 PWD 得到 'mainframe_dataset' pc_dataset.txt 我没有尝试。现在我只能明天尝试。 – 2013-03-11 23:33:05

回答

1

我认为在这种情况下使用environ()会有问题;我不知道为什么。

使用Shell("cmd.exe /c D:\user\MyDocs\Downloads_FTP\FtpLogin2.bat"

这应该3.11后的任何版本的Windows运行。