Function Range2TXT(ByRef ra As Range, Optional ByVal ColumnsSeparator$ = vbTab, _
Optional ByVal RowsSeparator$ = vbNewLine) As String
If ra.Cells.Count = 1 Then Range2TXT = ra.Value & RowsSeparator$: Exit Function
If ra.Areas.Count > 1 Then
Dim ar As Range
For Each ar In ra.Areas
Range2TXT = Range2TXT & Range2TXT(ar, ColumnsSeparator$, RowsSeparator$)
Next ar
Exit Function
End If
arr = ra.Value
For i = LBound(arr, 1) To UBound(arr, 1)
txt = "": For j = LBound(arr, 2) To UBound(arr, 2): txt = txt & ColumnsSeparator$ & arr(i, j): Next j
Range2TXT = Range2TXT & Mid(txt, Len(ColumnsSeparator$) + 1) & RowsSeparator$
Next i
End Function
Sub ПримерИспользованияФункции_Range2TXT()
MsgBox Range2TXT(ActiveSheet.UsedRange, "; ", vbLf), vbInformation
MsgBox Range2TXT([a1:b2,c4:e4,d4]), vbInformation
End Sub
Пример в файле: http://excelvba.ru/XL_Files/Sample__31-07-2010__18-06-43.zip |