0

以下のコードの 3 行目で、このエラーがポップアップ表示されました。この動作については、インターネット上で説明がないようです。

このエラーが発生した理由を調べており、数分後に修正されました。

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

ここに接続の問題があるようです-おそらくタイムアウトですか?あなたの 3 行のコードは次々に実行されないと思います (つまり、SetCurrentDirectoryさらにコードを実行した後です)。このエラーはFtp、ログインしている有効な接続がオブジェクトにない場合に発生します。Openコマンドの 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 に答える