Показать сообщение отдельно
Старый 29.04.2009, 18:11   #10  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Проект приведен
Ах, какой я себе кусочек лакомый нашёл в методе clearEmptyCells
X++:
// формируем адрес диапазона ячеек *относительно* _cell
strAddr = ComExceldocument_RU::numToNameCell( n, 1 );
if (cnRows > 1)
    strAddr += @':' + ComExceldocument_RU::numToNameCell( n, cnRows );
oRng = _cell.range( strAddr ); // получаем столбец внутри диапазона _cell

oRng.Replace( cvSrcValue, cvDstValue, #xlWhole, #xlByColumns );
Почувствуем разницу:
X++:
// получаем столбец внутри диапазона _cell:
// Шаг 1. выбираем n-й столбец по первой строке ("координата X")
// Шаг 2. воображаем этот столбец вниз на cnRows строк ("координата Y")
oRng = _cell.offset( 0, n-1 );     // Шаг 1.
oRng =  oRng.resize( cnRows, 1 );  // Шаг 2. 

oRng.Replace( cvSrcValue, cvDstValue, #xlWhole, #xlByColumns );
За это сообщение автора поблагодарили: gl00mie (3).