Страницы: 1
RSS
Подкорректировать макрос объединения текста из разных ячеек
 
Всем привет!
Пользуюсь макросом:
Код
Sub Соединить_через_запятую()
  Const sDELIM As String = " "     'символ-разделитель
  Dim rCell As Range
  Dim sMergeStr As String
  If TypeName(Selection) <> "Range" Then Exit Sub   'если выделены не ячейки - выходим
  With Selection
      For Each rCell In .Cells
          sMergeStr = sMergeStr & "," & sDELIM & rCell.Text  'собираем текст из ячеек
      Next rCell
      Application.DisplayAlerts = False   'отключаем стандартное предупреждение о потере текста
      .Merge Across:=False                'объединяем ячейки
      Application.DisplayAlerts = True
      .Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM))    'добавляем к объед.ячейке суммарный текст
      .MergeCells = True
  End With
  Selection.UnMerge
End Sub

Подскажите плз, как его изменить, что бы после соединения текста, после запятой не было знака пробела?
Что текст в ячейке имел такой вид:
202013654,202014565,70708532,9956214

Спасибо, огромное!
 
Код
 Const sDELIM As String = ""     'символ-разделитель
 
Если удалить параметр или в ковычках убрать значение, т.е. пробел тогда получаем, что запятая ставится перед объединеным текстом и иметт вот такой вид:
,202013654,202014565,70708532,9956214
Критически необходимо, что бы этой начальной запятой не было.
 
Код
Mid(строка,2)
 
отлично, спасибо большое всем
 
Ещё вариант.
Код
Sub Соединить_через_запятую()
  Const sDELIM As String = ","     'символ-разделитель
  Dim rCell As Range
  If TypeName(Selection) <> "Range" Then Exit Sub   'если выделены не ячейки - выходим
    Dim arr As Variant
    ReDim arr(1 To Selection.Cells.Count)
  With Selection
      Dim i As Long
      For Each rCell In .Cells
          i = i + 1
          arr(i) = rCell.Text
      Next rCell
      .ClearContents
      .Cells(1, 1).Value = Join(arr, sDELIM)
  End With
End Sub
Страницы: 1
Наверх