vba - txt - macro para exportar datos de excel a csv
Cómo crear y escribir en un archivo txt usando VBA (5)
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 se van a imprimir en ese archivo .txt .
¿Cuál es el comando para crear un archivo .txt usando VBA, y cómo lo escribo?
Para elaborar sobre la respuesta de Ben (ya que mejorar no parece estar permitido):
Si agrega una referencia a Microsoft Scripting Runtime
y escribe correctamente la variable fso , puede aprovechar el autocompletado (Intellisense) y descubrir las otras excelentes funciones 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://.com/a/517202/2822719 for details):
''Set fileStream = Nothing
''Set fso = Nothing
End Sub
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í:
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
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()
Open ThisWorkbook.Path & "/template.txt" For Output As #1
Print #1, strContent
Close #1