View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
JE McGimpsey JE McGimpsey is offline
external usenet poster
 
Posts: 4,624
Default Concatenate & Write to Text File

One way:

Public Sub ExportRange()
Const csDELIM As String = ""
Const csFILENAME As String = "C:\Windows\Desktop\textfile.txt"
Dim rCell As Range
Dim nFileNumber As Long
Dim sData As String

If TypeOf Selection Is Range Then
nFileNumber = FreeFile
Open csFILENAME For Output As nFileNumber
For Each rCell In Selection.EntireRow.Columns(1).Cells
With rCell
sData = .Text & csDELIM & .Offset(0, 2).Text & _
csDELIM & .Offset(0, 3).Text
End With
Print #nFileNumber, sData
Next rCell
Close #nFileNumber
End If
End Sub

If you want a delimiter between cell values, change csDELIM to suit.


In article om,
"Dan R." wrote:

I'm trying to concatenate columns 1, 3, 4 and write the results to a
text file. I have some code from one of J-Walk's books but I can't
seem to manipulate it to do what I want. Here it is if you want
something to start with:

Sub ExportRange()
Dim Filename As String
Dim NumRows As Long, NumCols As Integer
Dim r As Long, c As Integer
Dim Data
Dim ExpRng As Range
Set ExpRng = Selection
NumCols = ExpRng.Columns.Count
NumRows = ExpRng.Rows.Count
Filename = "C:\Windows\Desktop\textfile.txt"
Open Filename For Output As #1
For r = 1 To NumRows
For c = 1 To NumCols
Data = ExpRng.Cells(r, c).Value
If IsNumeric(Data) Then Data = Val(Data)
If IsEmpty(ExpRng.Cells(r, c)) Then Data = ""
If c < NumCols Then
Write #1, Data;
Else
Write #1, Data
End If
Next c
Next r
Close #1
End Sub

Thank You,
-- Dan