ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Writing Text Files (https://www.excelbanter.com/excel-programming/291300-writing-text-files.html)

RossD

Writing Text Files
 
I would like to write a vb macro that writes a text file from a row in
a worksheet with the first entry of the row as the file name. i.e.

A B
Filename1 Data to be written as file
Filename2 ... etc.

Any help would be appreciated.

Tom Ogilvy

Writing Text Files
 
No built in capability to do that. You could copy the row2 data to a new
sheet, make that sheet active, then do a File SaveAS, naming the file with
the value in A1 of the original sheet.

Or you could use low level file io:

http://support.microsoft.com/support...eio/fileio.asp
File Access with Visual Basic® for Applications


--
Regards,
Tom Ogilvy

"RossD" wrote in message
m...
I would like to write a vb macro that writes a text file from a row in
a worksheet with the first entry of the row as the file name. i.e.

A B
Filename1 Data to be written as file
Filename2 ... etc.

Any help would be appreciated.




RossD

Writing Text Files
 
"Tom Ogilvy" wrote in message ...
No built in capability to do that. You could copy the row2 data to a new
sheet, make that sheet active, then do a File SaveAS, naming the file with
the value in A1 of the original sheet.



Thanks, Tom.
Actually, I made some progress on this since my post. I have:

Sub FileCreation()
Dim RowCount, FileNumber, File_Name
Range("A6").Select
RowCount = Range(Selection, Selection.End(xlDown)).Count
For n = 1 To RowCount
FileNumber = FreeFile ' Get unused file number.
Open ActiveCell.Value & ".txt" For Output As #FileNumber '
Create file name.
Write #FileNumber, ActiveCell.Offset(0, 1).Value ' Outputs
text.
Close #FileNumber ' Close file.
ActiveCell.Offset(1, 0).Select
Next n
End Sub

The only problem now is that the data in the text file had "" around
it. I don't know how to eliminate the quotation marks.

Tom Ogilvy

Writing Text Files
 
Use Print instead of Write in your output line. See Excel VBA help for
details.

--
Regards,
Tom Ogilvy


"RossD" wrote in message
om...
"Tom Ogilvy" wrote in message

...
No built in capability to do that. You could copy the row2 data to a

new
sheet, make that sheet active, then do a File SaveAS, naming the file

with
the value in A1 of the original sheet.



Thanks, Tom.
Actually, I made some progress on this since my post. I have:

Sub FileCreation()
Dim RowCount, FileNumber, File_Name
Range("A6").Select
RowCount = Range(Selection, Selection.End(xlDown)).Count
For n = 1 To RowCount
FileNumber = FreeFile ' Get unused file number.
Open ActiveCell.Value & ".txt" For Output As #FileNumber '
Create file name.
Write #FileNumber, ActiveCell.Offset(0, 1).Value ' Outputs
text.
Close #FileNumber ' Close file.
ActiveCell.Offset(1, 0).Select
Next n
End Sub

The only problem now is that the data in the text file had "" around
it. I don't know how to eliminate the quotation marks.





All times are GMT +1. The time now is 05:25 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com