Ich habe versucht, den folgenden Code zu verwenden, den ich in a previous SO Frage gefunden habe, um eine generierte .php-Datei auf meinen freigegebenen Server per FTP hochzuladen.Hochladen über SFTP mit Excel VBA-Code
Ich verwende Excel 2016 unter Windows 10 und versuche, auf einen Server mit 1and1 hochzuladen.
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
Wenn ich das Makro auszuführen, gibt es keine Rückmeldung darüber, was passiert ist, aber die Datei nicht übertragen wurde in das/test/Verzeichnis auf dem Server. Ich habe einige Permutationen ausprobiert, aber ich kann es nicht zur Arbeit bringen.
Irgendwelche Ratschläge, wie ich das zum Funktionieren bringen kann?
Auf einer anderen Anmerkung, ich habe auch versucht, den Code here, konnte aber nicht diese entweder an die Arbeit ...
ich FileZilla zuvor verwendet haben, Dateien per FTP zu übertragen, aber diese Excel-Arbeitsmappe sein wird, Die Möglichkeit, Excel-VBA-Code hochzuladen, ist ein wichtiger Teil der Rationalisierung des Workflows.
Einige Änderungen vorgenommen, einschließlich Ändern des Verzeichnispfads und Ihrer anderen Vorschläge, aber es funktioniert immer noch nicht. Der Bildschirm flackert kurz, aber es gibt keine andere Rückmeldung und wenn ich das Verzeichnis auf dem Server überprüfe, wurde die Datei nicht übertragen. Hat dieser Code früher für Sie funktioniert? –
Ist es wahrscheinlich ein Unterschied, dass ich SFTP anstelle von FTP verwende, und wenn ja, kann ich dies im Code angeben? –
sFTP macht einen großen Unterschied. Windows führt sFTP nicht nativ aus. Sie müssen WinSCP oder PuTTY verwenden. – Tim