将Excel列导出到多个文本文件

时间:2019-01-11 15:32:36

标签: excel vba

Input

Output

我需要将[A ... N]列中收集的数据[1 ... M]拆分为单独的文本文件,命名为每列的第一个单元格。

以excel排列的数据:

FileName_A  |FileName_B |FileName_C |…      |FileName_N
Data_A1     |Data_B1        |Data_C1        |…      |Data_N1
Data_A2     |Data_B2        |Data_C2        |…      |Data_N2
Data_A3     |Data_B3        |Data_C3        |…      |Data_N3
…       …       …       …       …
DataA_AM    DataA_BM    DataA_CM    DataA_AM    DataA_NM
____________________________________________________________________________

应写入文件名

FileName_A.tex应该看起来像:

_____________
Data_A1
Data_A2
Data_A3
…
DataA_AM
____________

我已经尝试过,但是...

尽管对于专家来说,这似乎是一件容易的事,但对我来说却是一个巨大的障碍,因为我对编码不熟悉。

非常感谢您的提前支持。

2 个答案:

答案 0 :(得分:1)

因此,我假设M是您已经定义的整数变量,而N是仅列名(因此列号14)。该代码将是

Dim i As Integer
Dim LastRow As Integer

For i = 1 To 14

Range(Cells("2", i), Cells(M, i)).ExportAsFixedFormat _
    Type:=xlTypeXPS, _
    Filename:=Sheets(1).Cells("1", i), _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

Next

您可能希望将Filename:=Sheets(1).Cells("1", i), _替换为Filename:="C:/Your_Path/ & Sheets(1).Cells("1", i), _

答案 1 :(得分:0)

请尝试以下代码。

    Sub export_data()
    Dim row, column, i, j As Integer
    Dim fullPath, myFile As String

    fullPath = "C:\Workspace"
    row = 21
    column = 5

    For i = 1 To column
        myFile = Cells(1, i).Value + ".txt"
        myFile = fullPath + "/" + myFile
        Open myFile For Output As #1
        For j = 2 To row
            Print #1, Cells(j, i).Value
        Next j
        Close #1
    Next i

    End Sub

您可以更改行号和列号。您的第一行始终是标题。 请参见下面的Excel图片

Excel Image