|
![]() |
#1 |
Модератор
|
Хорошо Gustav интересный код. Обязательно пригодится и использую.
Только у меня, еще немного другой вопрос. Как сделать чтоб передали методу параметры (str _bookMark, int _workSheet = 1) и для _BookMark скопировать всю эту область и вставить ниже, под копируемой областью. (с полным форматированием, и если ячейка именованная пользователем, то именованную ячейку перенести вниз.) ? А содержимое _bookMark оставить как есть.. но уже без имени ячейки. Т.е. копируем вставляем не всю строку, а только ту область которую указали. |
|
![]() |
#2 |
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) |
|
![]() |
#3 |
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(); } |
|
Теги |
excel, документация, как правильно, ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|