2016-04-11 9 views
0
  K    L   M 
    1 Starting_Year Code  ID 
     ------------------------------------ 
    2 1982   ALLRIN  400200583 
    3 1983   ALLRIN  000083522 
    4 1983   ALLRIN  400200583 

"Starting_Year"によると "1982"、 "1983"、 "400200583"には1982という2つのテキストファイルを作成する方法もあります。 "1983"ファイルには "000083522"と "400200583"が含まれています。Excelからテキストファイルにデータを書き込む

これは私が "Starting_Year"、 "ID"からデータをキャッチするためにforループを使用する必要があるのだろうかと思っています。どのようなアイデア、どのように私はそれを行うことができますか?本当にありがとう!

Public Function CreateTextFile(FileName As String, Optional Overwrite As Boolean = True, Optional Unicode As Boolean = False) As Scripting.TextStream 

    Dim oTs as Scripting.TextStream 
    set oTs = CreateTextFile("W:\starting_Year.txt",True) 
    oTs.Write("ID") 
    oTs.close 

    End Function 
+2

あなたの試行を投稿してください。また、「条件vbaに基づいて別のシートに行をコピーしてください」、グーグルで「テキストファイルvbaとしてシートを保存する」などのグーグルで試してみてください。これはこのサイトだけで何度も答えられています。 –

+1

あなたが試したことを教えてください。そうしたやり方で私たちはあなたを導く手助けをすることができ、間違いやよくある間違いを指摘することができます。さもなければ、@ ScottCranerはあなたを正しい道に導いた。 – BruceWayne

+0

もう1つのオプションは、この例で使用されているように、VBAコマンド 'Write'を使用することです:http://stackoverflow.com/questions/35434220/vba-replacing-commas-in-csv-not-inside-qoutes/35440236#35440236 – Ralph

答えて

1

サブCreateTextFile() 薄暗いIFREE、iyear、I、J限り 薄暗いIPATHコルA、列B内のコード、列CのIDでstarting_year持つString

ipath = "C:\Users\You" 'TO UPDATE 

ifree = FreeFile 
i = 2 
While Cells(i, 1) <> "" 

    iyear = Cells(i, 1) 
    ifree = FreeFile 
    Open ipath & "\" & iyear & ".txt" For Output As ifree 

     j = 2 
     While Cells(j, 1) <> "" 
      If Cells(j, 1) = iyear Then Print #ifree, Cells(j, 3) 
      j = j + 1 
     Wend 
    Close ifree 

i = i + 1 
Wend 
End Sub 

として

+0

ありがとうございます! @crea 実行時に「パスが見つかりません」というエラーが表示され、「ipath&」\ "&iyear&" .txt "For if As ifree"というエラーが表示されます。別の方法でパスを見つける必要がありますか? –

+0

実際のパスでvar ipathを設定するだけです;):C:\ Users \ You – crea

関連する問題