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

有没有人有一个想法如何在Excel中编写VBA将多行导出到一列。 此外,我想在每个“行”的末尾添加“input”。 理想情况下,这将以.txt格式导出,但即使在同一文档中进行转换,它也已经很棒了。

谢谢!

编辑:例如:我有行,其中包含一些文本/值A1:A5,B1:B5,…我需要所有这些行,以获得“移动”在一个单一的D列举例如。 所以,A1会去D1,A2-D2,A3-D3 … B1到D7等等。 在每一个结束(A5,B5,C5,…)之后,我需要一个空单元格(当我将它转换为.txt时,意味着进入)。 我希望现在有点清楚。

您需要添加引用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 

下面的代码将做你所描述的。 在开始时使用常量来设置应将多less列和行移动到由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