Код описывает, обращение к ФТП серверу, и загрузку файлов на него.
Пример использования Здесь
В примере реализовано следующие: Обработка данных на листах,преобразование листов в CSV, отправка их на FTP сервер.
Параметры подключения задаются на специальном административном листе.
Ниже рассмотрен пример кода, отвечающего именно за конект к ФТП серверу.
Sub Sendfile() ' настройки Dim address As String Dim loginn As String Dim pwdd As String Dim inidir As String Dim tardir As String Dim range As String Dim Filename As String Dim FullPath As String Dim FullPath2 As String Dim B7CellVAL As String Dim thiswbfp As String Dim lLastRow As Long Dim strDirectoryList As String Dim lStr_Dir As String Dim lInt_FreeFile01 As Integer Dim lInt_FreeFile02 As Integer On Error GoTo Err_Handler lStr_Dir = ThisWorkbook.Path lInt_FreeFile01 = FreeFile lInt_FreeFile02 = FreeFile strDirectoryList = lStr_Dir ' директория файла '' Delete completion file If Dir(strDirectoryList & ".out") <> "" Then Kill (strDirectoryList & ".out") '' Создаем файл с командами FTP Open strDirectoryList & ".txt" For Output As #lInt_FreeFile01 Print #lInt_FreeFile01, "open " & address ' aa?ann Print #lInt_FreeFile01, loginn ' eiaei Print #lInt_FreeFile01, pwdd ' ia?ieu Print #lInt_FreeFile01, "cd " & inidir ' ia?aeoe a eaoaeia Print #lInt_FreeFile01, "binary" ' a ?a?eia Print #lInt_FreeFile01, "send " & ThisWorkbook.Path & "\" & Filename & " " & tardir & "/" & Filename ' что, откуда и куда '' для получения файла можно использовать следующую строку ''Print #lInt_FreeFile01, "recv \Picture.gif " & ThisWorkbook.Path & "\Picture.gif" Print #lInt_FreeFile01, "bye" Close #lInt_FreeFile01 '' Создаем виндовый батник, который запустит команды Open strDirectoryList & ".bat" For Output As #lInt_FreeFile02 Print #lInt_FreeFile02, "ftp -s:" & strDirectoryList & ".txt" Print #lInt_FreeFile02, "Echo ""Complete"" > " & strDirectoryList & ".out" Close #lInt_FreeFile02 '' Invoke Directory List generator Shell (strDirectoryList & ".bat"), vbHide '', vbMinimizedNoFocus 'Wait for completion Do While Dir(strDirectoryList & ".out") = "" DoEvents Loop Application.Wait (Now + TimeValue("0:00:05")) ' задержка выполнения '' Clean up files If Dir(strDirectoryList & ".bat") <> "" Then Kill (strDirectoryList & ".bat") If Dir(strDirectoryList & ".out") <> "" Then Kill (strDirectoryList & ".out") If Dir(strDirectoryList & ".txt") <> "" Then Kill (strDirectoryList & ".txt") End If bye: Exit Sub Err_Handler: MsgBox "Error : " & Err.Number & vbCrLf & "Description : " & Err.Description, vbCritical Windows("1ps.xlsm").Activate Resume bye End Sub