2

目的のセルをtxtファイルにエクスポートする単純なマクロがあります。エクスポートするセルをマクロに個別に指示する代わりに、セルの範囲を選択できますか?

これが私が持っている非常に単純なコードです:

Sub TEST()
    Open "C:\text.txt" For Output As #1
        Print #1, Cells(1, 1) & Cells(1, 2)
        Close
End Sub

これで、ExcelシートセルA1、A2をエクスポートできます。しかし、広範囲のセルをエクスポートしたい場合、この方法はあまり便利ではありません。では、セルA1:A100を簡単にエクスポートできる方法はありますか?

ありがとう!

4

4 に答える 4

3

joseph4twはすでに応答しているようですが、私の答えは少し異なり、別のアイデアが得られる可能性があるので、とにかくここに置きます。

Sub TEST()
    Dim c As Range, r As Range
    Dim output As String
    For Each r In Range("A1:C3").Rows
        For Each c In r.Cells
            output = output & c.Value & ","
        Next c
        output = output & vbNewLine
    Next r
    Open "H:\My Documents\text.txt" For Output As #1
    Print #1, output
    Close
End Sub
于 2013-02-28T01:18:11.493 に答える
1

を使用しInputBoxてタイプをに設定すると8、ユーザーはExcelでクリックして範囲を選択できます。

次に例を示します。

Sub test()
    Dim r As Excel.Range, cell As Excel.Range
    On Error Resume Next
    Set r = Application.InputBox("Select Range", "Select Range", Type:=8)
    On Error GoTo 0
    If r Is Nothing Then Exit Sub

    Open "C:\text.txt" For Output As #1
    For Each cell In r
        Print #1, cell.Value
    Next
    Close
End Sub
于 2013-02-28T01:12:24.200 に答える
1

mkingstonによる例では、コンマが最初に配置されていることに気付きました。これにより、すべてが.csvの2番目の列から開始されます(最初の列は空白になります)。ステートメントの最後にコンマを置くのがもう少し良いでしょう。REPLACE()を使用して最後の'、'を削除できますが、必須ではありません。

   Dim c As range, r As range
        Dim output As String
        For Each r In range(DataRange).Rows
            For Each c In r.Cells
                output = output & c.Value & ","
            Next c
            output = output & vbNewLine

        Next r
于 2014-08-21T16:43:41.987 に答える
0

空でないセル(連続)をすべて選択する場合は、次を使用します。

Range("A1").CurrentRegion.Select

その後、好きな方法でエクスポートできます;)

于 2013-12-10T16:28:54.357 に答える