Excel - Erstellen Sie eine Textdatei, die nach einer Zelle benannt ist und andere Zelldaten enthält

Excel - Erstellen Sie eine Textdatei, die nach einer Zelle benannt ist und andere Zelldaten enthält

Ich möchte .txt filefür jeden Wert in eine column ADatei mit den entsprechenden Werten in erstellen.columns B and C

Antwort1

Je mehr ich mir das ansah, desto nützlicher fand ich es als kleines Makro. Um zu verhindern, dass leere Zeilen verarbeitet werden (und mein Excel blockiert), habe ich den Code so umgeschrieben, dass nur dann eine Datei erstellt wird, wenn Daten verfügbar sind. Außerdem erstellt die Verwendung von „of“ printanstelle von „than“ writeText ohne Anführungszeichen. Hier ist, was ich verwendet habe, um dasselbe zu erreichen.

Sub CreateFile()
Do While Not IsEmpty(ActiveCell.Offset(0, 1))
    MyFile = ActiveCell.Value & ".txt"
    'set and open file for output
    fnum = FreeFile()
    Open MyFile For Output As fnum
    'use Print when you want the string without quotation marks
    Print #fnum, ActiveCell.Offset(0, 1) & " " & ActiveCell.Offset(0, 2)
Close #fnum
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Fühlen Sie sich frei, es nach Belieben zu verwenden und zu ändern. Danke für die tolle Idee.

Antwort2

Dieses Makro nimmt jeden Wert in column A, erzeugt ein .txt documentim Namen des Wertes und fügt die entsprechenden Informationen aus eincolumns B and C

Sub CreateTxt()
'
For Each ce In Range("A1:A" & Cells(Rows.Count, 1).End(xlDown).Row)
    Open ce & ".txt" For Output As #1
    Write #1, ce.Offset(0, 1) & " " & ce.Offset(0, 2)
    Close #1
Next ce
End Sub

Vier Jahre später habe ich beschlossen, zu meiner ersten SU-Frage zurückzukehren – meinen Anfängen in VBA. Das ist besser, überschreibt aber alle bereits vorhandenen Dateien

Option Explicit

Sub CreateFileEachLine()

    Dim myPathTo As String
    myPathTo = "C:\Users\path\to\"
    Dim myFileSystemObject As Object
    Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Dim fileOut As Object
    Dim myFileName As String

    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Dim i As Long

        For i = 1 To lastRow
            If Not IsEmpty(Cells(i, 1)) Then
                myFileName = myPathTo & Cells(i, 1) & ".txt"
                Set fileOut = myFileSystemObject.CreateTextFile(myFileName)
                fileOut.write Cells(i, 2) & "    " & Cells(i, 3)
                fileOut.Close
            End If
        Next

    Set myFileSystemObject = Nothing
    Set fileOut = Nothing
End Sub

verwandte Informationen