Получение текста из диапазона ячеек

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

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Спасибо!!!

Проще новый макрос написать, чем переделывать эту функцию...

Sub test()
    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

Заранее спасибо

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  _  _              _   _                
| || | _ __ (_) | | __ _ ___
| || |_ | '__| | | | | / _` | / __|
|__ _| | | | | | | | (_| | | (__
|_| |_| _/ | |_| \__, | \___|
|__/ |___/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.