VBA Write Statement
Write Description
Writes data to a sequential file.
Write Syntax
Write #FileNumber, [OutputList]
The Write statement contains 2 arguments:
FileNumber: Any valid file number.
OutputList: Optional. One or more comma-delimited numeric expressions or string expressions to write to a file.
Examples of Excel VBA Write Function
First Name | Last Name | Age | Gender |
Robert | Stepp | 20 | Male |
Jennifer | Mariscal | 33 | Female |
David | Romig | 35 | Male |
Carmel | Ingram | 26 | Female |
To output Range(“A2:D5”) in a sheet like the above picture to a file, you can use the following code.
Sub WriteRangeToFile(strFile As String, rng As Range)
Dim row As Range, cell As Range
Dim FileNumber As Integer
FileNumber = FreeFile
Open strFile For Output As #FileNumber
For Each row In rng.Rows
For Each cell In row.Cells
If cell.Column = row.Cells.Count Then
Write #FileNumber, cell
Else
Write #FileNumber, cell,
End If
Next cell
Next row
Close #FileNumber
End Sub
Sub Write_Example()
Dim strFolder As String
Dim strFile As String
Dim dlgFolder As FileDialog
Dim rng As Range
Set dlgFolder = Application.FileDialog(msoFileDialogFolderPicker)
If dlgFolder.Show = True Then
strFolder = dlgFolder.SelectedItems(1)
Else
Exit Sub
End If
Set rng = Range("A1:D5")
strFile = "Write_Output.txt"
WriteRangeToFile strFolder & "\" & strFile, rng
End Sub
The output to the file “Write_Output.txt”:
"First Name","Last Name","Age","Gender"
"Robert","Stepp","20","Male"
"Jennifer","Mariscal","33","Female"
"David","Romig","35","Male"
"Carmel","Ingram","26","Female"