繁体   English   中英

VBA Excel将行导出到.txt中的列

[英]VBA Excel Export Rows to Columns in .txt

有没有人知道如何在Excel中编写VBA以将多行导出到一列。 另外,我想在每个“行”的末尾添加“输入”。 理想情况下,这将以.txt格式导出,但即使在同一文档中进行转换,它也会很好。

谢谢!

编辑:例如:我的行包含一些文本/值A1:A5,B1:B5,...我需要所有这些行在例如单列D中“移动”。 因此,A1将转到D1,A2-D2,A3-D3 ... B1到D7,依此类推。 每次结束后(A5,B5,C5,...),我需要一个空单元格(当我将其转换为.txt时,表示输入)。 我希望现在有点清楚。

您需要添加引用Microsoft ActiveX Data Objects 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

下面的代码将按照您的描述进行操作。 使用开头的常量来设置应移动到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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM