2016-05-31 10 views
2

おはよう、私がするためにコードを書くことを試みてきましたVBA_using「ライン入力」が、失敗した(エラー62:ファイルの最後に、過去の入力)

: 1. TXT。ファイル 2.のリストを含むファイル、リスト内のファイルが1 ずつが各ファイルの内容を3.readとシートに

それを入れて、私のコードはここにある:

Private Sub Boutton_Importer_Click() 

list_de_controle = "TEXT;" & listPath 
Open listPath For Input As #1 'open the list 

Do While Not EOF(1) 'read the list 
    Line Input #1, nom_de_Fich 
    ActiveCell = nom_de_Fich 
    ActiveCell.Offset(0, 1).Select 

    Open nom_de_Fich For Input As #2 'open a file in the list 

    Do While Not EOF(1) 'read the contents in the list 
     Line Input #2, contenu 
     ActiveCell = contenu 
     ActiveCell.Offset(0, 1).Select 
    Loop 
    Close #2 

    ActiveCell.Offset(1, 0).Select 'go to the line below 
    ActiveCell.End(xlToLeft).Select 
Loop 
Close #1 
End Sub 

Do Whileの2つの部分はまったく同じですが、リストの最初の部分は正常に動作していることがあります。 ファイル内のコンテンツの2番目のファイルは、常に失敗しました。 これをチェックするのを手伝ってもらえますか? ありがとうございます!

+0

私は、リストの最初のファイルを開くことができ、すべてのコンテンツがシートに読み込むことができることを、いくつかのことを忘れてしまったが、次のファイルができます開くことはできません。だから私は問題は、EOFがすでに終わりに達しているかどうかを判断できないということです。 – Hiddenllyy

答えて

2

問題はここにある:

Do While Not EOF(1) 'read the contents in the list 
    Line Input #2, contenu 
    ActiveCell = contenu 
    ActiveCell.Offset(0, 1).Select 
Loop 
Close #2 

あなたはファイル#2から通って、Line Inputループにコードを言っているが、条件がファイル#1にファイルの終わりに達し基づいています。

あなたが実際にファイル#1ステートメントを使用して移動していないしていたようEOF(1)が真なることはありません - 必然的に実行します。このループは、エラーを取得しますその時点でファイル#2の終わりを打つ

あなたの問題を解決するには、ファイル


の終わり過去の入力:

ではなく、このような何かを試してみてください。

Sub Foo() 

Dim textFile1 As Byte 
Dim textFile2 As Byte 
Dim tfArray1 As Variant 
Dim tfArray2 As Variant 

textFile1 = FreeFile 

Open listPath For Input As #textFile1 
    tfArray1 = Split(Input(LOF(textFile1), textFile1), vbCrLf) 
Close #textFile1 

For Each tfile In tfArray1 

    textFile2 = FreeFile 

    Open tfile For Input As #textFile2 
     tfArray2 = Split(Input(LOF(textFile2), textFile2), vbCrLf) 
    Close #textFile2 

    Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(UBound(tfArray2) + 1, 1).Value = _ 
     WorksheetFunction.Transpose(tfArray2) 

Next 

End Sub 
+0

ありがとう!そして私はEOF(1)だけをEOF(2)に変更しようとしましたが、それは機能します。しかし、それはいくつかの問題を引き起こすかどうかわからないのですか? – Hiddenllyy

+0

すべきではありませんが、私はあなたが望むならそれを試してみてください。私が参照してください –

+0

を助けた場合、答えとしてマークすることを忘れないでください!私は試してみるよ。もちろん、私はマークをつけるでしょう!どうもありがとう! – Hiddenllyy

関連する問題