0

各反復で列を交互にファイルに書き込みたい範囲があります。例を挙げると、A1 > B1 > A2 > B2 などになります。

      A   |   B
1   Hello | World
2   Whats | Up

これをテキストファイルに次のように記述します。

Hello
World
Whats
Up

最初の列から情報を取得する次のコードがありますが、反復ごとに 2 番目の列を追加することに行き詰まっています。

Sub mac()
Dim fso As New FileSystemObject
Dim stream As TextStream
Set stream = fso.CreateTextFile("F:\Hmmmmm.txt", True)

  Range("G2").Select

  Do Until IsEmpty(ActiveCell)
     stream.WriteLine ActiveCell
     ' Here I would affectively want stream.WriteLine ActiveCell + 1 Column
     ActiveCell.Offset(1, 0).Select
  Loop

End Sub
4

1 に答える 1

1

最初に、まだ行っていない場合は、VBA エディターの [ツール] で [Microsoft ファイル スクリプト] リファレンスを選択していることを確認します (詳細については、「VBA でFileSystemObject を使用するにはどうすればよいですか? 」を参照してください)。

以下はうまくいくはずです。私のコメントを読むことに注意してください-スプレッドシート/ニーズに合わせてコードの一部を変更できます

Sub mac()
    Dim ws As Worksheet
    Dim fso As New FileSystemObject
    Dim stream As TextStream
    Dim DataTable As Range
    Dim StartCell As Range
    Dim c As Range

    'Edit this line to save the text file to drive\path\filename of your choice
    Const TextFileName As String = "F:\Hmmmmm.txt"       

    Set ws = ActiveSheet
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set stream = fso.CreateTextFile(FileName:=TextFileName, Overwrite:=True)

    'Edit this line to adjust to your spreadsheet
    'I assume your data starts in Cell A1
    Set StartCell = ws.Range("A1")

    Set DataTable = StartCell.CurrentRegion

    For Each c In DataTable.Cells
            stream.WriteLine c.Value
    Next c

    Set c = Nothing
    Set StartCell = Nothing
    Set DataTable = Nothing
    Set ws = Nothing
    Set stream = Nothing
    Set fso = Nothing
End Sub
于 2013-03-17T08:25:15.213 に答える