Come creare e scrivere su un file txt usando VBA

Ho un file che viene aggiunto o modificato manualmente in base agli input. Poiché la maggior parte dei contenuti sono ripetitivi in ​​quel file, solo i valori esadecimali stanno cambiando, voglio renderlo un file generato da uno strumento.

Voglio scrivere i codici c che verranno stampati in quel file .txt .

Qual è il comando per creare un file .txt usando VBA e come scriverlo

Usa FSO per creare il file e scriverci sopra.

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 

Vedi la documentazione qui:

un modo semplice senza molta ridondanza.

  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 
 Open ThisWorkbook.Path & "\template.txt" For Output As #1 Print #1, strContent Close #1 

Per approfondire la risposta di Ben (dal momento che il miglioramento non sembra consentito):

Se si aggiunge un riferimento a Microsoft Scripting Runtime e si digita correttamente la variabile fso, è ansible sfruttare il completamento automatico (Intellisense) e scoprire le altre grandi funzionalità di FileSystemObject .

Ecco un modulo di esempio 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 
 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()