Ik heb een bestand dat handmatig wordt toegevoegd of gewijzigd op basis van de invoer. Aangezien de meeste inhoud in dat bestand repetitief is, veranderen alleen de hex-waarden, ik wil er een door een tool gegenereerd bestand van maken.
Ik wil de c-codes die worden afgedrukt in dat .txt-bestand schrijven.
Wat is de opdracht om een .txt-bestand te maken met VBA en hoe schrijf ik ernaar
Antwoord 1, autoriteit 100%
Om uit te weiden over Bens antwoord:
Als u een verwijzing naar Microsoft Scripting Runtime
toevoegt en de variabele fsocorrect typt, kunt u profiteren van automatisch aanvullen(Intellisense) en ontdekken de andere geweldige functies van FileSystemObject
.
Hier is een complete voorbeeldmodule:
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 "something"
' 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
Antwoord 2, autoriteit 94%
Gebruik FSO om het bestand te maken en ernaar te schrijven.
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
Bekijk hier de documentatie:
- http://technet.microsoft.com/en-us/library/ ee198742.aspx
- http://technet.microsoft.com/en-us/library/ ee198716.aspx
Antwoord 3, autoriteit 90%
Open ThisWorkbook.Path & "\template.txt" For Output As #1
Print #1, strContent
Close #1
Meer informatie:
- Microsoft Docs:
Open
-instructie - Microsoft Docs:
Print #
verklaring - Microsoft Docs:
Close
-instructie - wellsr.com : VBA schrijven naar tekstbestand met
Print
Statement - Office-ondersteuning:
Workbook.Path
eigendom
Antwoord 4, autoriteit 65%
een gemakkelijke manier zonder veel redundantie.
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
Antwoord 5
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()