nilem, добрый день!
Так и получается, полностью копируется строка: формулы, проверки данных, условное форматирование, просто форматирование. Поэтому макрос и работает по принципу копирования строки.
Я даже не думал делать вставку строки. Сейчас проверил, во вставленной строке остается все кроме формул. Только вот возможно ли переписать макрос, чтобы он потом протягивал формулы? Увы, но VBA я не знаю совсем. Вот макрос:
| Код | 
|---|
| Public Function Insert_N_Rows_nc(frr As Variant, nr As Variant) As VariantDim more_ins As Boolean Dim mf As Variant Dim nmf As Variant Dim mfl As Variant Dim aws As WorksheetDim wasn As StringDim IsProtected As BooleanDim Wanm As StringDim earfirst As VariantDim earlast As VariantDim wanum As VariantDim awsn As StringDim rc As VariantDim oSet aws = ActiveSheetrc = -4awsn = aws.NameIsProtected = aws.ProtectionModeIf IsProtected Then Run "UPAS"mf = 1more_ins = TrueIf nr = 1 Then   mfl = 1   more_ins = FalseElse    While (more_ins)        Rows(CStr(frr) & ":" & CStr(frr + mf - 1)).Select        Application.CutCopyMode = False        Selection.Copy        Selection.Ins ert Shift:=xlDown        nmf = mf * 2        If nmf * 2 > nr Then            more_ins = False        Else            mf = nmf        End If    Wend    mfl = nr - nmfEnd IfIf mfl > 0 Then    Rows(CStr(frr) & ":" & CStr(frr + mfl - 1)).Select    Application.CutCopyMode = False    Selection.Copy    Selection.Ins ert Shift:=xlDown    o = 1End IfApplication.CutCopyMode = FalseCells(frr, 1).Sele ctrc = 0e_inr:If IsProtected Then Run "PAS"Se t aws = NothingInsert_N_Rows_nc = rcEnd F unction | 
PAS и UNPAS блокируют и разблокируют защищенные ячейки соответственно.