如何从Excel工作表导出数据以创建排列为特定格式的单元格数据的文本文件?

时间:2014-05-27 04:17:34

标签: excel vba excel-vba

我对Excel并不太熟悉。我想知道是否有一种方法可以使用电子表格并使用特定的文本格式从其数据生成新的文本文件。我所拥有的是一张包含200多个国家/地区名称的表格。对于每一行,有5列,每列包含一个超链接。我想要创建的是每行的分组,格式如下:

rowName(国家1)
column2Title | row1Column2Link
column3Title | row1Column3Link
column4Title | row1Column4Link
column5Title | row1Column5Link

rowName(国家2)
column2Title | row2Column2Link
column3Title | row2Column3Link
column4Title | row2Column4Link
column5Title | row2Column5Link

等,其中约200个。如图所示,每个垂直条的左侧是每个分组中的完全相同的文本,只是相应的列标题。右侧是当前行的每列中存在的内容。我对VBA非常熟悉,但我可以自己编程,但没有一些解释。

1 个答案:

答案 0 :(得分:1)

假设您的数据从A1开始,第一行是标题,而您所在国家/地区的第一列没有空白,这应该有用(或至少给您一点要点):

Sub write_stuff()
    Dim iFile As Integer
    Dim sFile As String
    Dim rLoop As Range, r As Range

    sFile = "C:\mytxtfile.txt"
    iFile = FreeFile
    Open sFile For Output As iFile
    For Each rLoop In Range("A2", Range("A1").End(xlDown))
        Print #iFile, rLoop
        For Each r In Range("B1", Range("A1").End(xlToRight))
            Print #iFile, r & "|" & Cells(rLoop.Row, r.Column)
        Next r
        Print #iFile, ""
    Next rLoop

    Close #iFile
    Set rLoop = Nothing
    Set r = Nothing
End Sub