|
![]() |
#1 |
Moderator
|
Т.е., как я понял, всё происходит так же, как и в методе 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 X++: // с COM::createFromObject(_comRange.EntireRow()).Insert(); // на _comRange.Insert( #xlShiftDown ); // и выше добавить: #define.xlShiftDown(-4121) |
|
![]() |
#2 |
Moderator
|
Цитата:
Код: Sub Macro22() Dim rng As Range Set rng = Range("B2:C4") If rng.MergeCells Then Set rng = rng.Range("A1").MergeArea End If rng.Insert xlShiftDown 'где константа xlShiftDown = -4121 rng.Copy rng.Offset(-rng.Rows.Count) End Sub P.S. Соответственно, добавка в метод: X++: if (comRange.MergeCells()) { comRange = comRange.Range('A1'); comRange = comRange.MergeArea(); } |
|