excel vba excel-vba ftp

Conectarse a FTP desde Excel para automatizar el uso compartido de archivos(VBA Beginner)



excel-vba (1)

Soy un principiante y nuevo en Excel VBA, pero estoy tratando de automatizar el intercambio de archivos en FTP (WinSCP) al conectarme a Excel y tal vez crear una macro que me ayude. En FTP, fui a la sesión> Generar URL de sesión / código> Script (archivo de script) y el siguiente código está allí:

open ftp://myUsername:myPassword@theHostname/ # Your command 1 # Your command 2 exit

Supongo que la línea abierta conectaría Excel a FTP. Estoy haciendo referencia al código de este sitio para ponerlo en el área ''# comando'': https://www.mrexcel.com/forum/excel-questions/261043-connecting-ftp-excel.html

open ftp://myUsername:myPassword@theHostname/ Option Explicit Sub FtpTest() MsgBox fnDownloadFile("ftp://yoursite", "username", "password", _ "The name of your file", _ "C:/The name of your file to save as") End Sub Function fnDownloadFile(ByVal strHostName As String, _ ByVal strUserName As String, _ ByVal strPassWord As String, _ ByVal strRemoteFileName As String, _ ByVal strLocalFileName As String) As String ''// Set a reference to: Microsoft Internet Transfer Control ''// This is the Msinet.ocx Dim FTP As Inet ''As InetCtlsObjects.Inet Set FTP = New Inet ''InetCtlsObjects.Inet On Error GoTo Errh With FTP .URL = strHostName .Protocol = 2 .UserName = strUserName .Password = strPassWord .Execute , "Get " + strRemoteFileName + " " + strLocalFileName Do While .StillExecuting DoEvents Loop fnDownloadFile = .ResponseInfo End With Xit: Set FTP = Nothing Exit Function Errh: fnDownloadFile = "Error:-" & Err.Description Resume Xit End Function exit

Lo hice como decía este sitio para ir a VBA Editor> Herramientas> referencia y marcar Microsoft Internet Control.

1) ¿Estoy usando el código correcto? ¿Lo coloqué en el área correcta (en el área ''# comando'')? Y ahora pongo todo el código en un Botón de Comando, pero cuando hago clic en él me da un Error de Sintaxis que resalta la primera línea: Private Sub CommandButton1_Click ())

2) ¿Dejo el Msgbox en la 3ª línea como para esperar la entrada del usuario o lo llené con mi nombre de usuario / contraseña / nombre de host? (Todavía no soy muy bueno con las funciones en VBA) Si lo llenó en el código, ¿qué valor pongo para "yoursite" ya que no estoy accediendo a un sitio web?

Lo siento, estoy tan confundido :( ¡Cualquier ayuda sería genial y gracias de antemano!


Creo que debería echar un vistazo aquí - Referencia de Excel VBA para objetos Inet Aquí se muestra cómo agregar referencia para objetos INet en vba. Además, cuando solo quiere probar si el código funciona, en lugar de asignar macro a un botón, etc., si usa "Función", cuando vaya a la celda de la hoja de trabajo y empiece a escribir = fnDown ... Debería ver su macro - allí puedes poner tus parámetros de función. Sin embargo, antes que nada, tiene que encargarse de la referencia a Inet.

Este enlace también puede ser útil: VBA Excel y FTP con MSINET.OCX y tipo de Inet