Я попытался использовать следующий код, который я нашел в предыдущий SO вопрос, чтобы загрузить сгенерированный файл .php на мой общий сервер через FTP.
Я использую Excel 2016 на Windows 10 и пытаюсь загрузить на сервер с 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
Когда я запускаю макрос, нет обратной связи относительно того, что произошло, но файл не был перенесен в каталог / test / на сервере. Я попробовал несколько перестановок, но я не могу заставить его работать.
Любой совет, как я могу заставить это работать?
На другой ноте я тоже пробовал код Вот, но не смог заставить это работать …
Ранее я использовал FileZilla для передачи файлов по FTP, но эта книга Excel будет разослана нескольким членам команды, и возможность загрузки с использованием кода Excel VBA является важной частью оптимизации рабочего процесса.
Изменить эту строку
Print #lInt_FreeFile01, "/test/"
в
Print #lInt_FreeFile01, "cd test"
или возможно
Print #lInt_FreeFile01, "cd /test"
Если вам нужно установить активный каталог относительно root.
Если это не сработает, значит, ваша проблема в пути, с которого вы копируете:
Environ("USERPROFILE") & "\Documents\UploadFiles\" & "rd1.php"
потому что остальная часть вашего файла команд FTP выглядит законно.
Других решений пока нет …