|
01.07.2010, 13:20 | #1 |
Axapta Retail User
|
Переместить лист Excel
Подскажите как переместить лист в конец книги.
comWorkSheet.move(); перемещает в другую книгу. |
|
01.07.2010, 13:34 | #2 |
Axapta Retail User
|
Пробую так :
comWorkSheet = m_comDocument.getWorkSheet(_workSheet); comWorkSheetAfter = comWorkSheets.item(_after); comWorkSheet.move(dummy, comWorkSheetAfter); Ругается на item() -( |
|
01.07.2010, 14:16 | #3 |
MCTS
|
Попробуйте так:
X++: COM comWorkSheet = this.getWorkSheet(_workSheet); COM comWorkSheetBefore = this.getWorkSheet(_before); comWorkSheet.move(comWorkSheetBefore); |
|
01.07.2010, 15:27 | #4 |
Axapta Retail User
|
Цитата:
COM comWorkSheet = this.getWorkSheet(_workSheet);
COM comWorkSheetBefore = this.getWorkSheet(_before); comWorkSheet.move(comWorkSheetBefore); |
|
01.07.2010, 14:56 | #5 |
Участник
|
Как уже недонократно указывалось, любые параметры в Com-объекты желательно оборачивать в ComVariant().
Попробуйте так X++: COM workSheets; int totalSheets; COM workSheetLast; COM workSheetForMove; workSheets = m_comDocument.worksheets(); totalSheets = workSheets.count(); workSheetLast = workSheets.Item(ComVariant::createFromInt(totalSheets)); workSheetForMove = workSheets.Item(ComVariant::createFromInt(1)); workSheetForMove.move(null, workSheetLast); |
|
01.07.2010, 16:01 | #6 |
Moderator
|
|
|
01.07.2010, 16:16 | #7 |
Axapta Retail User
|
Цитата:
Попробуйте так
X++: COM workSheets; int totalSheets; COM workSheetLast; COM workSheetForMove; workSheets = m_comDocument.worksheets(); totalSheets = workSheets.count(); workSheetLast = workSheets.Item(ComVariant::createFromInt(totalSheets)); workSheetForMove = workSheets.Item(ComVariant::createFromInt(1)); workSheetForMove.move(null, workSheetLast); Метод move() вызван с неправильными параметрами. |
|
01.07.2010, 19:51 | #8 |
Участник
|
Цитата:
X++: COM workSheets; int totalSheets; COM workSheetLast; COM workSheetForMove; COMVariant dummy; ; workSheets = m_comDocument.worksheets(); totalSheets = workSheets.count(); workSheetLast = workSheets.Item(ComVariant::createFromInt(totalSheets)); // Предполагаю, что перемещаем первый лист workSheetForMove = workSheets.Item(ComVariant::createFromInt(1)); dummy = new COMVariant(); dummy.noValue() workSheetForMove.move(dummy, workSheetLast); // Или можно так //workSheetForMove.move(COMArgument::NoValue, workSheetLast); |
|
|
За это сообщение автора поблагодарили: novic (1). |
Теги |
excel |
|
|