【问题标题】:How To Create Text File From Excel Values如何从 Excel 值创建文本文件
【发布时间】:2017-03-27 17:38:58
【问题描述】:

我目前正在开发一种工具,该工具使我能够为我的 Excel 文件中存在的条目创建我的特定配置文件。

假设我有这些值: 男:

我想生成一个像下面这样的文本文件。女性和男性必须有单独的文件名,并且每行只能有一个文件。

我目前有以下代码:

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

此代码的示例输出:

我怎样才能达到我上面提到的预期输出?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这是最终的代码,它将创建两个文件并且不会在单元格为空白的地方写入值:

    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
    

    【讨论】:

    • 谢谢! :) 但是,如果我想要一个男性和女性文本文件的自定义标题怎么办?例子。我想添加“他的名字”和“她的名字”?
    • 所以文件名是“His First Name.txt”?我有点困惑。
    • 不,我只是想让男性和女性文本文件的文件内容显示不同。
    • 基本上,我只想将每个单元格值分配到一个变量中,以便随时随地使用它。我怎样才能在这段代码上做到这一点?
    • 我给你的代码会在男性和女性的不同文件中显示不同的内容。并将单元格值分配给变量,创建不同的变量并在循环中为其分配值。
    【解决方案2】:

    使用下面的代码 改代码

    For i = 2 To LastRow
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 2013-06-12
      • 1970-01-01
      相关资源
      最近更新 更多