Pregunta Cómo crear y escribir en un archivo txt usando VBA


Tengo un archivo que se agrega o modifica manualmente según las entradas. Como la mayoría de los contenidos son repetitivos en ese archivo, solo cambian los valores hexadecimales, quiero convertirlo en un archivo generado por la herramienta.

Quiero escribir los códigos c que van a imprimirse en ese .TXT archivo.

¿Cuál es el comando para crear un .TXT archivo usando VBA, y cómo escribo en él


73
2017-07-16 11:20


origen


Respuestas:


Use FSO para crear el archivo y escribir en él.

Dim fso as Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile as Object
Set oFile = FSO.CreateTextFile(strPath)
oFile.WriteLine "test" 
oFile.Close
Set fso = Nothing
Set oFile = Nothing    

Vea la documentación aquí:


130
2017-07-16 11:27



una manera fácil sin mucha redundancia.

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim Fileout As Object
    Set Fileout = fso.CreateTextFile("C:\your_path\vba.txt", True, True)
    Fileout.Write "your string goes here"
    Fileout.Close

22
2018-02-23 17:01



Open ThisWorkbook.Path & "\template.txt" For Output As #1
Print #1, strContent
Close #1

10
2017-10-26 20:25



Para elaborar sobre La respuesta de Ben (dado que mejorarlo no parece estar permitido):

Si agrega una referencia a Microsoft Scripting Runtime y escribe correctamente la variable fso usted puede aprovecha la autocompletación (Intellisense) y descubre las otras excelentes características de FileSystemObject.

Aquí hay un módulo de ejemplo completo:

Option Explicit

' Go to Tools -> References... and check "Microsoft Scripting Runtime" to be able to use
' the FileSystemObject which has many useful features for handling files and folders
Public Sub SaveTextToFile()

    Dim filePath As String
    filePath = "C:\temp\MyTestFile.txt"

    ' The advantage of correctly typing fso as FileSystemObject is to make autocompletion
    ' (Intellisense) work, which helps you avoid typos and lets you discover other useful
    ' methods of the FileSystemObject
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    Dim fileStream As TextStream

    ' Here the actual file is created and opened for write access
    Set fileStream = fso.CreateTextFile(filePath)

    ' Write something to the file
    fileStream.WriteLine "test"

    ' Close it, so it is not locked anymore
    fileStream.Close

    ' Here is another great method of the FileSystemObject that checks if a file exists
    If fso.FileExists(filePath) Then
        MsgBox "Yay! The file was created! :D"
    End If

    ' Explicitly setting objects to Nothing should not be necessary in most cases, but if
    ' you're writing macros for Microsoft Access, you may want to uncomment the following
    ' two lines (see https://stackoverflow.com/a/517202/2822719 for details):
    'Set fileStream = Nothing
    'Set fso = Nothing

End Sub

4
2018-04-05 14:16



Dim SaveVar As Object

Sub Main()

    Console.WriteLine("Enter Text")

    Console.WriteLine("")

    SaveVar = Console.ReadLine

    My.Computer.FileSystem.WriteAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt", "Text: " & SaveVar & ", ", True)

    Console.WriteLine("")

    Console.WriteLine("File Saved")

    Console.WriteLine("")

    Console.WriteLine(My.Computer.FileSystem.ReadAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt"))
    Console.ReadLine()

End Sub()

-2
2018-02-10 13:16