使用Excel中的VBA将文本文件FTP到服务器

使用Excel中的VBA将文本文件FTP到服务器,ftp,excel,vba,Ftp,Excel,Vba,我有一个Excel工作表,用户在其中输入某些数据,我希望将其存储在文本文件中,并使用FTP上传到服务器。一个站点建议添加对“Microsoft Internet传输控制”的引用,然后定义一个“Inet”对象来进行FTP。但是,我在VB编辑器的“工具->引用”中找不到具有此名称的引用。有人知道这个问题的解决方案吗?提前谢谢。这是我通过谷歌搜索找到的一个解决方案- Public Sub FtpSend() Dim vPath As String Dim vFile As String Dim vF

我有一个Excel工作表,用户在其中输入某些数据,我希望将其存储在文本文件中,并使用FTP上传到服务器。一个站点建议添加对“Microsoft Internet传输控制”的引用,然后定义一个“Inet”对象来进行FTP。但是,我在VB编辑器的“工具->引用”中找不到具有此名称的引用。有人知道这个问题的解决方案吗?提前谢谢。

这是我通过谷歌搜索找到的一个解决方案-

Public Sub FtpSend()

Dim vPath As String
Dim vFile As String
Dim vFTPServ As String
Dim fNum As Long

vPath = ThisWorkbook.Path
vFile = "YourFile.csv"
vFTPServ = "********"

'Mounting file command for ftp.exe
fNum = FreeFile()
Open vPath & "\FtpComm.txt" For Output As #fNum
Print #1, "user ***** *****" ' your login and password"
Print #1, "cd TargetDir"  'change to dir on server
Print #1, "bin" ' bin or ascii file type to send
Print #1, "put " & vPath & "\" & vFile & " " & vFile ' upload local filename to server file
Print #1, "close" ' close connection
Print #1, "quit" ' Quit ftp program
Close

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

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

End Sub
原始来源:

这里有一个函数用于包装Shell调用。它将等待shell命令(上面的ftp函数)完成后再继续。它来自访问站点,但应适用于任何vba主机。