0

我在下面的第三行代码中弹出了这个错误。互联网上似乎没有对此行为的解释。

我正在研究为什么会出现此错误,并在几分钟后自行修复。

Set Ftp = CreateObject("Reflection.FTP.3")
Ftp.Open "xxx.xxx.xxx.xxx", "username", "password"
Ftp.SetCurrentDirectory "DirectoryName/DirectoryName/DirectoryName"

错误是什么?

运行时错误“-2147418113 (8000ffff)”:对象“IReflectionFTP”的方法“SetCurrentDirectory”失败

更多细节:

应用:Excel宏

语言:VB (VBA)

*这是因为编码错误吗?*

不见得。宏已经运行了很长时间,这是第一次出现。

*是因为 FTP 服务中断吗?*

或许。但是日志每秒都有记录,似乎没有中断。

4

1 回答 1

0

在我看来这里有一个连接问题 - 也许是超时?我假设您的三行代码不会一个接一个地执行(即在SetCurrentDirectory更多代码之后)。如果Ftp对象没有登录的有效连接,则会出现此错误。将Open命令的 IP 更改为无效的 IP,您会看到同样的错误。

SetCurrentDirectory尝试在命令 之前设置以下代码行。

    If FTP.Status = rcLoggedIn + rcConnected Then
        Ftp.SetCurrentDirectory "DirectoryName/DirectoryName/DirectoryName"
    Else
        'Error handle
    End If

请注意,您正在后期绑定对象,以便它为您工作,您需要以下If语句:

If FTP.Status = 17 Then

另外,如果是超时问题,那么我会将会话的超时期限设置为更长,即FTP.TimeoutSession = 300.

于 2013-06-26T21:56:24.333 回答