次のようなスクリプトを使用して、テキスト ファイル内の一部のデータをループ処理しています。
Do Until objFile.AtEndOfStream
'Check if it is not a blank line; otherwise skip it
If Len(Trim(objFile.ReadLine)) > 0 Then
'Some code
end if
Loop
毎回値を出力し、ファイルの最後まで取得します (すべての値が出力されることがわかります) が、最後に到達すると常にエラーになります。使用on error resume nextして印刷したところErr.Number、エラー番号 9 が表示されましたSubscript out of range。
私がループしているファイルの問題は、最後の行が空白であることです。ファイルを開き、最後の空白行を削除してからコードを実行すると、正常に動作するため、これを知っています。ただし、これは自動化されたプロセスです (ファイルは自動的に FTP に送信され、プロセスは自動化されたタスクによって毎日実行されます)。If Len(Trim(objFile.ReadLine)) > 0 Thenこの空白行を考慮に入れるためにそれを含めましたが、データのある行では正常に機能しますが、ファイルの最後でエラーがスローされます。
空白行に達したときにループを終了させることもできますが、何らかの理由でコードの途中に空白行が表示された場合に備えて、条件を保持したいと思います。それが本当にファイルの最後の行であるかどうかを判断してから、ループを終了する方がクリーンになると思います。
何か案は?ご協力いただきありがとうございます!