2017-06-08 10 views
1

複数の行を1つの列にエクスポートするためにExcelでVBAを作成する方法を知っている人はいませんか。さらに、私は各 "行"の最後に "enter"を追加したいと思います。理想的には、これは.txt形式でエクスポートされますが、同じ文書の内部で変換されていても既に優れています。VBA Excel行を.txtにエクスポートする

ありがとうございました!

編集:例:テキスト/値A1:A5、B1:B5などの行を持っています。これらの行はすべて、一列のDで「移動」する必要があります。したがって、A1はD1、A2-D2、A3-D3 ... B1〜D7などになります。各端(A5、B5、C5、...)の後に空のセルが必要です(これを.txtに変換すると入力を意味します)。私は今それが少しはっきりしていることを願っています。

+0

あなたの質問をより具体的に教えてください。たとえば、どの形式がExcelで、どの形式を.txt形式でエクスポートするか説明してください。 – paul

+0

これはメモ帳++マクロのように聞こえます。 – jivko

+0

[Excel - 複数の列を1つの列にまとめる](https://stackoverflow.com)/questions/2977660/excel-combine-multiple-columns-into-one-column) – YowE3K

答えて

0

あなたは参照Microsoft ActiveXデータは2.8ライブラリ

Set ff = CreateObject("ADODB.Stream") 
ff.Type = 2 
ff.Charset = "utf-8" 
ff.Open 

For Each Cell In Range("A1:D5").Cells 
ff.WriteText Cell.Value & vbNewLine 
Next 

path_to_save = ActiveWorkbook.Path 

ff.SaveToFile path_to_save & "\test.txt", 2 
0

オブジェクト以下のコードは、あなたが記述何をします追加する必要があります。最初に定数を使用して、1つの列に移動する列と行の数を設定します(TargetColNo)。スキャンした各列の後に空のセルが追加されます。

テキストファイルに保存する場合は、このコードを使用してテキストファイルを追加して、列の代わりに結果を追加します。

Sub Rows2OneColumn() 
    Const StartColumnNo = 1 ' Start at column A 
    Const EndColNo = 3  ' End at column C 
    Const StartRowNo = 1 ' Start at row 1 
    Const EndRowNo = 5  ' End at row 5 

    Const TargetColNo = 5 ' Put result in column E 

    Dim source_row As Integer 
    Dim source_col As Integer 
    Dim target_row As Integer 

    target_row = 1 

    For source_col = StartColumnNo To EndColNo 
     For source_row = StartRowNo To EndRowNo 
      Cells(target_row, TargetColNo).Value = Cells(source_row, source_col).Value 
      target_row = target_row + 1 
     Next 
     target_row = target_row + 1 ' leave one cell empty 
    Next 
End Sub 
+0

それは完璧に動作します!どうもありがとう:) – Ziga

関連する問題