Страницы: 1
RSS
Дублирование строк по условию, Продублировать строки с переносом значений в определенном столбце
 
Доброго времени суток всем. Очередной раз обращаюсь за помощью в решении довольно не простой для меня задачи. Есть таблица с набором людей, напротив каждой фамилии в ячейке через запятую проставлены значения, необходимо в зависимости от кол-ва значений продублировать фамилию следующей строкой и вставить значение через запятую напротив фамилии... Пример приложил, в нем более понятен необходимый результат. Буду очень признателен за подсказки или помощь.
 
Формулой, макросом?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Я так понимаю, что формулой будет довольно проблематично найти подходящее решение... А так не принципиально. макрос конечно был бы удобнее
 
Возможно ли посчитать кол-во строк которое нужно продублировать исходя из кол-ва запятых, но как тогда перенести или скопировать значения?
Option Explicit
Sub SHD_AddRows()
 Dim ColN As Integer, LR As Long, i As Long
 ColN = 125 - 'В столбце считаю кол-во строк которое нужно вставить
 LR = Cells(Rows.Count, ColN).End(xlUp).Row
 For i = LR To 1 Step -1
   If Val(Cells(i, ColN)) > 0 Then
     Rows(i + 1 & ":" & i + Cells(i, ColN)).Insert 'Вставляю пустые строки
   End If
 Next
End Sub
Может возможно изменить , что бы значения так же переносились...?
 
Код
Sub minion()
Dim i&, lstr&, y&, x&
lstr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To lstr
    For y = 0 To UBound(Split(Cells(i, 2), ","))
        Cells(i + x + y, 7) = Split(Cells(i, 2), ",")(y)
        Cells(i + x + y, 6) = Cells(i, 1)
    Next y
    x = y + x - 1
Next i
End Sub
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Спасибо огромное. Все работает. Тема закрыта
 
Доброе время суток.
Если можно объясните пожалуйсто этот момент:
For y = 0 To UBound(Split(Cells(i, 2), ","))  в этом строке для переменной "у" дана значение.
Непонятно вот что: Как в коде работает переменная "Х" ?   x = y + x - 1
"Х" как нашёл  1-го столбца?  :)  
Изменено: abdu77 - 05.08.2017 00:03:23
Страницы: 1
Наверх