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
Комментарии
Спасибо!!!
Проще новый макрос написать, чем переделывать эту функцию...
Смотрите пример в файле: http://excelvba.ru/XL_Files/Sample__11-02-2012__12-07-17.zip
Здравствуйте
Как добавить в эту функцию еще один параметр?
Т.е. у меня есть диапазон ячеек:
Параметр 1
Параметр 2
...
Параметр n
к нему присоединяется разделитель (ColumnsSeparator - у меня это "="), затем другой разделитель (RowsSeparator - у меня это ссылка на ячейку, значение в которой меняется (например "450")), а нужно присоединить еще один разделитель(","), чтобы в итоге получилось следующее:
Параметр 1=450, Параметр 2=450,..., Параметр n=450
Заранее спасибо
Отправить комментарий