Страницы: 1
RSS
Как протянуть формулы из верхней строки по всему массиву и зафиксировать данные.
 
Доброго времени суток.
Подскажите я постоянно выполняю одну и ту же  задачу руками, как можно это все реализовать с помощью макроса.

В колонках D-K вставляется статичная информация из базы 1 C. В колонке А проставляется месяц за который эта информация берется.
Дальше "руками" копируется формулы из строки 2 (выделены желтым цветом) и добавляются к новой информации в данном образце это в строки 16-24 после фиксируем информацию "убив формулы". Первая строка с формулами остается для дальнейших вставок. Так вот вопрос можно ли эту операцию сделать при помощи макроса.

Желательно чтобы формулы протягивались из верхней строки только к новой информации и после фиксирования данных первая строка с формулами надо, чтобы оставалась без изменений.
 
DemonAMT, в листе 1
Код
Sub protyanut_formuli()Dim ilastrow As Long
ilastrow = Cells(Rows.Count, 4).End(xlUp).Row
ilastrow2 = Cells(Rows.Count, 2).End(xlUp).Row + 1

        Range("B2:C2").Select
        Selection.Copy
        Range(Cells(ilastrow2, 2), Cells(ilastrow, 3)).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        
        Range("L2:AD2").Select
        Selection.Copy
        Range(Cells(ilastrow2, 12), Cells(ilastrow, 30)).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        
        
        Range("A3").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        Application.CutCopyMode = False
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False

End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Вынес строку с формулами наверх и убрал все константы. Дал имя строке формул.  
Изменено: Михаил Лебедев - 14.02.2020 11:44:16
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
Вынес строку с формулами наверх и убрал все константы. Дал имя строке формул.  
Спс но у меня потом по этой таблице выводится сводная и первая строка должна быть название колонок. Формулы могу оставить только в второй строке.
 
Цитата
DemonAMT написал:
выводится сводная и первая строка должна быть название колонок
Странно. Не вижу связи. Пусть названия колоной будут во второй строке.
Но это не важно. Не проблема, просто в строке формул не должно быть констант. Только формулы и/или пустые ячейки.  
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Mershik написал:
DemonAMT , в листе 1
Подскажите вставляю макрос и почему то первая строка "Sub protyanut_formuli()Dim ilastrow As Long" Обозначается красным цветом и не дает работать макросу. Что то не нравится в "Dim"
Изменено: DemonAMT - 14.02.2020 12:23:36
 
Правильно так:
Код
Sub protyanut_formuli()
Dim ilastrow As Long
ilastrow = Cells(Rows.Count, 4).End(xlUp).Row
ilastrow2 = Cells(Rows.Count, 2).End(xlUp).Row + 1
 
        Range("B2:C2").Select
        Selection.Copy
        Range(Cells(ilastrow2, 2), Cells(ilastrow, 3)).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
         
        Range("L2:AD2").Select
        Selection.Copy
        Range(Cells(ilastrow2, 12), Cells(ilastrow, 30)).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
         
         
        Range("A3").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        Application.CutCopyMode = False
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
 
End Sub
 
Цитата
Михаил Лебедев написал:
Странно. Не вижу связи. Пусть названия колоной будут во второй строке.Но это не важно. Не проблема, просто в строке формул не должно быть констант. Только формулы и/или пустые ячейки.  
Подскажите, а обязательно, чтоб строка формул была вверху. просто при формировании сводной выбирается весь столбец А:А по названию столбца, а в случае если формулы вверху придется постоянно прописывать кол-во строк А1:А100.
 
Цитата
Андрей_26 написал:
Правильно так:
Подскажите у меня немного сместились колонки и теперь второй ряд начинается с J в макросе я меняю
Range("L2:AD2").Select на Range("J2:AD2").Select и у меня все ломается почему?
 
Работу макроса не проверял, просто показал где ошибка была
 
Цитата
DemonAMT написал:
Подскажите, а обязательно, чтоб строка формул была вверху
нет
Цитата
Михаил Лебедев написал:
Пусть названия колонок будут во второй строке.... это не важно. ..., просто в строке формул .. Только формулы и/или пустые ячейки.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх