2013-03-11 56 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運行。