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
|
|||

Комментарии
Проще новый макрос написать, чем переделывать эту функцию...
Dim param As Range, cell As Range
Set param = Range([A1], Range("A" & Rows.Count).End(xlUp))
v$ = Range("d2")
For Each cell In param.Cells
txt = txt & ", " & cell & "=" & v$
Next cell
txt = Mid(txt, 3)
MsgBox txt, vbInformation, "Результат"
End Sub
Смотрите пример в файле: 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
Заранее спасибо
Отправить комментарий