Здравствуйте. Прошу помочь в след.задаче. Есть Смета с этапами. В каждый этап нужно добавить 3 строки и внести в эти строки значения и формулы. Внести их нужно перед строкой с ячейкой "Итого (этап №...)". Значения указаны в конце таблицы. Формулы только в столбцах G, H и I; берем от вышестоящей строки. Спасибо.
Здравствуйте. Прошу помочь в след.задаче. Есть Смета с этапами. В каждый этап нужно добавить 3 строки и внести в эти строки значения и формулы. Внести их нужно перед строкой с ячейкой "Итого (этап №...)". Значения указаны в конце таблицы. Формулы только в столбцах G, H и I; берем от вышестоящей строки. Спасибо.den45444
Sub ДобавлениеСтроки() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана
' ищем строки, содержащие заданный текст ' (можно указать сколько угодно значений, и использовать подстановочные знаки) ДобавитьСтроку = Array("Итого (этап №*")
' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' перебираем все фразы в массиве For Each word In ДобавитьСтроку ' если в очередной строке листа найден искомый текст If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next word Next
If Not delra Is Nothing Then delra.EntireRow.Insert ' добавляем строку End Sub
[/vba]
Есть код на добавление одной строки: [vba]
Код
Sub ДобавлениеСтроки() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана
' ищем строки, содержащие заданный текст ' (можно указать сколько угодно значений, и использовать подстановочные знаки) ДобавитьСтроку = Array("Итого (этап №*")
' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' перебираем все фразы в массиве For Each word In ДобавитьСтроку ' если в очередной строке листа найден искомый текст If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next word Next
If Not delra Is Nothing Then delra.EntireRow.Insert ' добавляем строку End Sub
With Intersect(delra.Offset(-3, 6), Columns("G:H")) .FormulaR1C1 = "=ROUND(RC3*RC[-2],0)" Intersect(.Offset(, 2), Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])" End With
With Intersect(delra.Offset(-3, 6), Columns("G:H")) .FormulaR1C1 = "=ROUND(RC3*RC[-2],0)" Intersect(.Offset(, 2), Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])" End With
KSV, Благодарю за помощь. Работает. А как добавить в эти новые строки значения (см. ниже таблицы): 1. "Вынос мусора" 2. "Подъем" 3. Копия строки, которая находится в таблице: "Накладные расходы"
Посмотрите в конце таблицы. Там есть пример трех строк. Вот именно так (кроме формул последних 3-х столбцов) хотелось бы добавлять строки.
KSV, Благодарю за помощь. Работает. А как добавить в эти новые строки значения (см. ниже таблицы): 1. "Вынос мусора" 2. "Подъем" 3. Копия строки, которая находится в таблице: "Накладные расходы"
Посмотрите в конце таблицы. Там есть пример трех строк. Вот именно так (кроме формул последних 3-х столбцов) хотелось бы добавлять строки.den45444
KSV, Все работает. Спасибо. В строке "Накладные расходы" добавляет значение "1000". А нужно, чтобы вместо 1000 прописал именно ту цифру, которая стоит в строке таблицы со значением "Накладные расходы". А если прописать вместо "1000" Cells(Columns(A:A).Find("Накладные расходы"), 6)
KSV, Все работает. Спасибо. В строке "Накладные расходы" добавляет значение "1000". А нужно, чтобы вместо 1000 прописал именно ту цифру, которая стоит в строке таблицы со значением "Накладные расходы". А если прописать вместо "1000" Cells(Columns(A:A).Find("Накладные расходы"), 6)den45444
KSV, Благодарен за вашу помощь. В этой теме я задавал вопрос на удаление строк по условию. Если в диапазоне от 6-й строки до строки "Итого на работу" в столбце "I" стоят "ноль или пусто", то удалить эти строки. Мне в этой теме помочь полностью не смогли. Прошу вас подключится, если не сложно.
KSV, Благодарен за вашу помощь. В этой теме я задавал вопрос на удаление строк по условию. Если в диапазоне от 6-й строки до строки "Итого на работу" в столбце "I" стоят "ноль или пусто", то удалить эти строки. Мне в этой теме помочь полностью не смогли. Прошу вас подключится, если не сложно.den45444