2016-10-13 426 views
0

a previous SO質問で見つかった次のコードを使用して、生成された.phpファイルをFTP経由で共有サーバーにアップロードしようとしました。Excelを使用してSFTP経由でアップロードするVBAコード

Windows 10でExcel 2016を使用していて、1and1のサーバーにアップロードしようとしています。

Public Sub FtpSend() 

Dim vPath As String 
Dim vFile As String 
Dim vFTPServ As String 
Dim lInt_FreeFile01 As Integer 

vPath = Environ("USERPROFILE") & "\Documents\UploadFiles\" 
vFile = "rd1.php" 
vFTPServ = "domain-name.co.uk" 

lInt_FreeFile01 = FreeFile 

'Mounting file command for ftp.exe 
Open vPath & "\FtpComm.txt" For Output As #lInt_FreeFile01 
    Print #lInt_FreeFile01, "domain-name.co.uk" 
    Print #lInt_FreeFile01, "username" 
    Print #lInt_FreeFile01, "password" 
    Print #lInt_FreeFile01, "/test/" 
    Print #lInt_FreeFile01, "ascii" 
    Print #lInt_FreeFile01, "send " & Environ("USERPROFILE") & "\Documents\UploadFiles\" & "rd1.php" 

    Print #lInt_FreeFile01, "bye" 

Close #lInt_FreeFile01 

Shell "ftp -n -i -g -s:" & vPath & "FtpComm.txt " & vFTPServ, vbNormalNoFocus 

SetAttr vPath & "FtpComm.txt", vbNormal 
Kill vPath & "\FtpComm.txt" 

End Sub 

私はマクロを実行すると、そこにはフィードバックが起こったことにようではありませんが、ファイルはサーバー上/テスト/ディレクトリに転送されていません。私は多くの並べ替えを試みましたが、それを動作させることはできません。

どのように私はこれを動作させることができるのですか?

は別のノートで、私はまた、コードhereを試してみましたが、これはどちらかの仕事を得ることができませんでした...

私は以前にFTP経由でファイルを転送するFileZillaのを使用しているが、このExcelワークブックがあることを行っています多くのチームメンバーに配布され、Excel VBAコードを使用してアップロードする機能は、ワークフローを合理化する上で重要な要素です。

Print #lInt_FreeFile01, "cd test" 

または多分

Print #lInt_FreeFile01, "cd /test" 

答えて

0

変更このライン

Print #lInt_FreeFile01, "/test/" 

あなたはルートからの相対Active Directoryを設定する必要がある場合。

問題が解決しない場合は、あなたの問題はあなたからコピーされているパスにある:あなたのFTPコマンドファイルの残りの部分は、合法的に見えるので

Environ("USERPROFILE") & "\Documents\UploadFiles\" & "rd1.php" 

+0

ディレクトリパスやその他の提案を変更するなど、いくつかの変更が加えられましたが、それでも機能しません。画面は短く点滅しますが、他のフィードバックはありません。サーバー上のディレクトリをチェックすると、ファイルは転送されません。このコードは以前あなたのために働いていましたか? –

+0

私はFTPの代わりにSFTPを使用していることに違いがありますか?もしそうなら、これをコードで指定できますか? –

+0

sFTPは大きな違いをもたらします。 WindowsはネイティブにsFTPを実行しません。 WinSCPまたはPuTTYを使用する必要があります。 – Tim

関連する問題