excel - 从 Excel VBA 通过 FTP 上传文件

标签 excel vba ftp

需要从 Excel VBA 将文件 (file.txt) 上传到服务器 (ftp.server.com)。 (不一定是 FTP,只需能够将文件放在那里并取回,我在 GoDaddy 共享主机上有一个服务器)

我尝试的是运行这个脚本:

ftp -s:script.txt

脚本.txt:

open ftp.server.com
USER
PASS
lcd c:\
put file.txt
disconnect
bye

我得到的错误是:

425 Could not open data connection to port 53637: Connection timed out

Google 告诉我需要进入被动模式,但命令行 ftp.exe 客户端不允许这样做。

我是否有更简单的 FTP 替代方案,或者是否有更好的方法通过 VBA 上传文件(无需命令行解决方法)?

我正在考虑使用 DROPBOX(但我真的不想在所有需要该程序的工作站上安装该程序)。

最佳答案

如果您无法使用 Windows ftp.exe(特别是因为 it does not support the passive mode 和 TLS/SSL),您可以使用其他命令行 FTP 客户端。

例如使用 WinSCP scripting 上传文件,使用:

Call Shell( _
    "C:\path\WinSCP.com /log=C:\path\excel.log /command " & _
    """open ftp://user:password@example.com/"" " & _
    """put C:\path\file.txt /path/"" " & _
    """exit""")
<小时/>

为了方便阅读,上面运行了这些 WinSCP 命令:

open ftp://user:password@example.com/
put C:\path\file.txt /path/
exit

您可以将命令放入脚本文件并使用 /script= command-line parameter 运行脚本。 ,类似于 ftp -s:,而不是 /command

<小时/>

请参阅 Converting Windows FTP script to WinSCP script 的指南.

您甚至可以拥有WinSCP GUI generate the FTP upload script为你。

<小时/>

WinSCP 默认为被动模式。

您还可以使用FTPS (TLS/SSL) :

open ftpes://user:password@example.com/
<小时/>

或者您可以使用WinSCP .NET assembly via COM来自 VBA 代码。

<小时/>

(我是 WinSCP 的作者)

关于excel - 从 Excel VBA 通过 FTP 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737691/

相关文章:

excel - VBA 清除 ActiveX 组合框列表

excel - 带有部分条件的 COUNTIF 不起作用

c# - 使用 C# 处理启用宏的 Excel 文件的警报弹出对话框

ios - 替换 ftp 服务器上的文件

Python 错误捕获和 FTP

vba - 计算不同 Excel 工作表中的行数

excel - 如何动态格式化 Excel 溢出范围?

vba - 在 access 97 中查找完整路径的目录部分(减去文件名)

excel - 如何将图片(图形对象)复制到 VBA 中的剪贴板?

linux - 我在 cron 中收到一个方案丢失错误