2015-05-04 7 views
0

我对VBA有疑问。我正在尝试创建用于将我的Excel工作表导出到txt文件的宏。 >我有一张表格,里面有一些记录,我想用列名作为分隔符将它们一个接一个地排成一行。它应该是这样的:VBA - 用于将数据从Excel导出到文本(逐个单元格与分隔符)

"column name1" 

1value_col1 

"coumn name2" 

1value_col2 

"column name 1" 

2value_col1 

"column name2" 

2value_col2 

等到文档结束。

谢谢任何​​类似的建议的例子。

+0

请分享自己当前的VBA。你有什么尝试? –

回答

0

制作另一个工作表,在其中格式化数据,如示例中所示。

=Data!A$1 
=OFFSET(Data!A1;ROUNDDOWN(ROW()/(no_of_columns*2);0);0) 
=Data!A$2 
... 

或者,如果你想有一个宏:

Dim c As Long 
For i = 2 To Range("A1").End(xlDown).Row 
    For j = 1 To Range("A1").End(xlToRight).Column 
     Worksheets("Out").Range("A1").Offset(c).Value = Cells(1, j) 
     c = c + 1 
     Worksheets("Out").Range("A1").Offset(c).Value = Cells(i, j) 
     c = c + 1 
    Next j 
Next i 

然后再在工作表只需保存为txt:

ActiveWorkbook.SaveAs Filename:= "C:\Book1.txt", FileFormat:=xlTextMSDOS,CreateBackup:=False 
+0

好,那么在这种情况下,传输数据的宏可以是什么?有像500条记录这样准备文件是相当多的时间 – matgod

+0

没有宏 - 只需写一些公式,并沿着工作表复制它们。公式将适当地格式化数据。使用我上面的示例。 –

+0

使用上面的宏或公式 –

相关问题