Если вы хотите скопировать все формулы, которые у вас уже есть, в 1 строку, вы можете использовать эту команду:
secondRange.Formula = firstRange.Formula
Где secondRange и firstRange - оба объекта диапазона. Так, например, если у вас есть все необходимые формулы в первой строке на рабочем листе, вы можете назначить первый диапазон объекту диапазона:
Dim firstRange As Range
Set firstRange = Range("A1:BO1")
Затем внутри вашего l oop, где вы создаете В новой строке вставьте формулы:
For i = 1 To MyN
ws.Rows(MyM + 2).EntireRow.Insert shift:=xlUp
Range("A" & (MyN + 2) & ":BO" & (MyN + 2)).Formula = firstRange.Formula
Next i
Или, если вы хотите получать формулы по одной, вы тоже можете это сделать. Это похожая команда, но вместо range2.Formula = range1.Formula вы делаете это по одной ячейке за раз, например
Cells(MyN + 2, 15).Formula = Cells(1, 15).Formula
Для второго листа это одно и то же. Вы можете создать второй l oop, чтобы вставить все значения во второй лист, просто убедитесь, что вы ссылаетесь на имя или индексный номер листа каждый раз, когда ссылаетесь на ячейку или диапазон.
For i = 1 To MyN
Sheets(2).Rows(MyM + 2).EntireRow.Insert shift:=xlUp
Sheets(2).Range("A" & (MyN + 2) & ":BO" & (MyN + 2)).Formula = firstRange.Formula
Next i
Sheets(2).Cells(MyN + 2, 15).Formula = Sheets(1).Cells(1, 15).Formula