2017-05-23 21 views
0

.txtファイルをexcel VBAの配列に直接変換しています。デフォルトの区切り文字は "、"(コンマ)で、 "vblf"に変更する必要があります。私は今日のコードでそれをどうやって行うのかを考え出すのに苦労しています。一度にカンマ区切りの、一つの変数でデータを読み込むことを意図している.txtファイルをカスタムデリミタの配列に直接変換する

Input #intFileNum, strRecordData 

Line Input #intFileNum, strRecordData 

Input

変更

Const strFileName As String = [file] 
    Dim CONFIGTXT(1 To 13000) As String 
    Dim intFileNum As Integer 
    Dim intCount As Integer 
    Dim strRecordData As String 

    intFileNum = FreeFile 
    intCount = 1 
    Open strFileName For Input As #intFileNum 
    Do Until EOF(intFileNum) Or intCount > 13000 
     Input #intFileNum, strRecordData 
     CONFIGTXT(intCount) = strRecordData 
     intCount = intCount + 1 

    Loop 
    Close #intFileNum 

    Range("Q2:Q" & UBound(CONFIGTXT) + 1) = WorksheetFunction.Transpose(CONFIGTXT) 
+0

現在、文字列の配列を 'String'変数に配置しようとしています。それはうまくいきません。あなたは 'CONFIGTXT'をどんな形にしましたか? (コードの最後では、それを単一の列に配置したいと思うので、データを実際に分割したくないと思うようです。) – YowE3K

+0

私は実験コードを誤って掲載しました。編集されたバージョンをご覧ください。スプリットが正しい機能であるかどうかはわかりません。 .txtファイルの各行の新しい配列要素ではなく、文字列のコンマになるたびに配列が新しい要素を作成しています –

+0

"配列は新しい要素が作成されるたびに発生します.txtファイル内の各行の新しい配列要素ではなく、文字列のコンマで区切ってください。 " - あなたが何を望んでいるかを**記述していますか?つまり、各要素の配列に新しい要素が必要です。 1レコードを表す配列の各エントリ?つまり、 '' abc/def ''('/'は実際に行送りです)という2つのレコードがあれば、' 1〜4'配列を作成したいと思います。 '1 To 2、1 2 'アレイに? – YowE3K

答えて

1

助けてください。あなたは

12345,789

のデータを持っていたし、var1、文

Input #intFileNum var1, var2 

を使用した場合たとえば、値12345var2が値を与えられる与えられる789

Line Inputは、改行文字(通常CR/LF)で区切られた行を一度に読み込むことを意図しています。


注:データが線で区切られた情報がフィードされている場合、これは、アレイ内の個別のエントリにこれらの部分を分離しません。だからあなたのデータは

が含まれている場合はXXX/XXX/XXX

/は、レコード全体が最終的な出力で一つのセルの中に置かれることを、実際に改行され

+0

AWESOME ...ようやく。時にはそれは単純なものです。 –

+0

@ Dave-Oh最後に「行入力」ではなく「入力」を使用する必要があったので、10年から15年程度かかることがあるので、それも問題ではないと思っていました。私はちょうどレコードの途中でLFのデータを持っていて、各LFがCR/LFであるかのようにレコードを分割したいと思っていました。 – YowE3K

関連する問題