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 <(E-Mail Removed)>,
"Dan R." <(E-Mail Removed)> 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
|