Т.е., как я понял, всё происходит так же, как и в методе copyAndInsertRange, только перед "букмарком" вставляются не полные строки, а диапазон с таким же размером, как у исходного "букмарка".
На VBA это выглядит так (отличие в одной строке):
Код:
Sub Macro2()
Dim rng As Range
Set rng = Range("B2:C4")
rng.Insert xlShiftDown 'где константа xlShiftDown = -4121
rng.Copy rng.Offset(-rng.Rows.Count)
End Sub
В методе copyAndInsertRange
New меняем соответствующую строку:
X++:
// с
COM::createFromObject(_comRange.EntireRow()).Insert();
// на
_comRange.Insert( #xlShiftDown ); // и выше добавить: #define.xlShiftDown(-4121)