Добрый день! подскажите, пожалуйста, как сделать максимально быстро, что данные из столбцов "Р" и далее перенести с добавлением строк в столбец "О" как показано в примере. На выходе должны быть именно данные, а не формулы
Добрый день! подскажите, пожалуйста, как сделать максимально быстро, что данные из столбцов "Р" и далее перенести с добавлением строк в столбец "О" как показано в примере. На выходе должны быть именно данные, а не формулыplaha
У меня есть некий массив данных, который мне нужно обработать. Задача - все заполненные столбцы от "Р" до бесконечности (порой доходит до 60) нужно перенести в столбец "О", чтобы в итоге получилось, как в этом примере. Количество добавляемых строк в каждом случае разное
У меня есть некий массив данных, который мне нужно обработать. Задача - все заполненные столбцы от "Р" до бесконечности (порой доходит до 60) нужно перенести в столбец "О", чтобы в итоге получилось, как в этом примере. Количество добавляемых строк в каждом случае разноеplaha
Правильно ли я Вас понял - если в исходной строке данных в столбцах P... есть n разных значений, то должно в итоге получиться n строк, которые в столбцах A...N дублируются, а в столбце O - заливаются данные из столбцов P... ?
Если да - уточняющий вопрос - в столбцах P... (в одной строке) значения могут повторяться или нет?
Правильно ли я Вас понял - если в исходной строке данных в столбцах P... есть n разных значений, то должно в итоге получиться n строк, которые в столбцах A...N дублируются, а в столбце O - заливаются данные из столбцов P... ?
Если да - уточняющий вопрос - в столбцах P... (в одной строке) значения могут повторяться или нет?abtextime
Сообщение отредактировал abtextime - Понедельник, 19.02.2018, 12:15
Sub plaha() For r = Cells(Rows.Count, 15).End(xlUp).Row To 2 Step -1 If Not IsEmpty(Cells(r, 16).Value) Then Set rR = Range(Cells(r, 16), Cells(r, Columns.Count).End(xlToLeft)) arr = rR.Value Rows(r + 1 & ":" & r + rR.Count).Insert xlShiftDown Cells(r + 1, 15).Resize(rR.Count, 1) = Application.Transpose(arr) Range(Cells(r + 1, 1), Cells(r + rR.Count, 14)).Value = Range(Cells(r, 1), Cells(r, 14)).Value rR.ClearContents End If Next End Sub
[/vba]
[vba]
Код
Sub plaha() For r = Cells(Rows.Count, 15).End(xlUp).Row To 2 Step -1 If Not IsEmpty(Cells(r, 16).Value) Then Set rR = Range(Cells(r, 16), Cells(r, Columns.Count).End(xlToLeft)) arr = rR.Value Rows(r + 1 & ":" & r + rR.Count).Insert xlShiftDown Cells(r + 1, 15).Resize(rR.Count, 1) = Application.Transpose(arr) Range(Cells(r + 1, 1), Cells(r + rR.Count, 14)).Value = Range(Cells(r, 1), Cells(r, 14)).Value rR.ClearContents End If Next End Sub