Страницы: 1
RSS
Сцепить столбец в строки через запятую, длиной в 250 символов., после достижения 250 символов начать новую строку.
 
Добрый день!!!
Имеем столбец с текстовыми значениями (коды заказов или артикулы)
Для запроса в erp систему, нужно этот столбец сцепить в строку через запятую.
Максимальная длина запроса 250 символов.

Возможно ли макросом реализовать формирование из столбца А нескольких строк, максимальной длиной 250 символов.
Заранее спасибо!!
 
Здравствуйте, выделяете ячейки с данными для сцепки и запускаете макрос
Код
Sub gg()
Dim a As Range
Dim b As Range
Dim i&

Set a = Selection
i = 2
For Each b In a
    If Len(Range("C" & i)) + Len(b) <= 250 Then i = i Else i = i + 1
    Range("C" & i) = Range("C" & i).Value + b.Text + ","
    If Right(Range("C" & i - 1), 1) = "," Then _
        Range("C" & i - 1) = Left(Range("C" & i - 1).Value, Len(Range("C" & i - 1)) - 1)
Next
    If Right(Range("C" & i), 1) = "," Then _
        Range("C" & i) = Left(Range("C" & i).Value, Len(Range("C" & i)) - 1)
End Sub
Изменено: Настя_Nastya - 12.03.2020 15:46:15
 
Настя_Nastya, То, что нужно! Спасибо огромное!!!!!
 
Настя_Nastya, а можно код заставить работать и с числовым столбцом... или с числом как текст (без букв и знаков)?
Упирается, не хочет.... сливает все значения в 1,33528813378431E+216
 
сделайте другой разделитель, например, добавьте еще пробел:
Код
Sub gg()
Dim a As Range
Dim b As Range
Dim i&

Set a = Selection
i = 2
For Each b In a
    If Len(Range("C" & i)) + Len(b) <= 250 Then i = i Else i = i + 1
    Range("C" & i) = Range("C" & i).Value + b.Text + ", "
    If Right(Range("C" & i - 1), 2) = ", " Then _
        Range("C" & i - 1) = Left(Range("C" & i - 1).Value, Len(Range("C" & i - 1)) - 2)
Next
    If Right(Range("C" & i), 2) = ", " Then _
        Range("C" & i) = Left(Range("C" & i).Value, Len(Range("C" & i)) - 2)
End Sub
Изменено: Настя_Nastya - 12.03.2020 17:16:58
Страницы: 1
Наверх