如何从Excel值创build文本文件

我目前正在使用一个工具,使我能够创build我的Excel文件中的条目的特定configuration文件。

假设我有这些值:男: 在这里输入图像说明

我想生成一个如下所示的文本文件。 女性和男性必须有单独的文件名,每行只能有一个文件。

在这里输入图像说明

我目前有这个代码如下:

Sub toFile() Dim FilePath As String, CellData As String, LastCol As Long, LastRow As Long Dim Filenum As Integer LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row For i = 1 To LastRow FilePath = Application.DefaultFilePath & "\" & Trim(ActiveSheet.Cells(i, 1).Value) & ".xpd" Filenum = FreeFile Open FilePath For Output As Filenum CellData = "" For j = 2 To LastCol CellData = Trim(ActiveSheet.Cells(i, j).Value) Write #Filenum, CellData Next j Close #Filenum Next i MsgBox ("Done") End Sub 

此代码的示例输出:

在这里输入图像说明

我怎样才能达到上述的预期产出?

这是最终的代码,它将创build两个文件,并不会写入单元格为空的值:

 Sub toFile() Dim FilePath As String, CellData As String, LastCol As Long, LastRow As Long Dim Filenum As Integer LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row For i = 2 To LastRow FilePath = Application.DefaultFilePath & "\" & Trim(ActiveSheet.Cells(i, 1).Value) & ".TXT" Filenum = FreeFile Open FilePath For Output As Filenum CellData = "" For j = 2 To LastCol If Trim(ActiveSheet.Cells(i, j).Value) <> "" Then CellData = Trim(ActiveSheet.Cells(1, j).Value) & ": " & Trim(ActiveSheet.Cells(i, j).Value) Write #Filenum, CellData End If Next j Close #Filenum Next i MsgBox ("Done") End Sub 

使用下面的代码更改代码

 For i = 2 To LastRow 

 celldata = Trim(ActiveSheet.Cells(1, j)) & ": " & Trim(ActiveSheet.Cells(i, j).Value)