Показать сообщение отдельно
Старый 30.03.2007, 11:21   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter)
Пытаюсь сделать простую, казалось бы, вещь: установить автофильтры на некоторые колонки листа Excel, в которые предварительно выводятся данные. В самом Excel вроде бы все просто:
PHP код:
Range("J5:J23").AutoFilter 
Пытаюсь сделать то же самое в X++, получаю Range через ComExcelDocument_RU.findRange() (точнее через метод-обертку, предоставляющий доступ к findRange() «извне»), вызываю AutoFilter() - и получаю ошибку:
Цитата:
Метод "autoFilter" в COM-объекте класса "Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Метод AutoFilter из класса Range завершен неверно.
Почему она вылезает - ума не приложу. В отладчике все выглядит нормально, объекты инициализированы, диапазон ячеек для Range передается корректный, заголовок в первой ячейке диапазона есть. Параметры никакие не передаю, поскольку в MSDN написано, что все параметры метода Range.AutoFilter() - необязательные. Пробовал диапазон ячеек, включая заголовок, заполнять без пропусков и только латиницей. Пробовал копировать %ProgramFiles%\Microsoft Office\Office11\1049\xllex.dll в ..\1033\ и даже, по всяким шаманским советам, копировать сам excel.exe в .\1033\xllex.dll. На всякий случай пробовал также делать через Selection:
X++:
COM app;
COM sel;
COM range;
;
// ...
range.select();
app = range.application();
sel = app.selection();
sel.autoFilter();
Диапазон нормально выделяется, но при вызове sel.autoFilter() вылезает такая же фигня. Причем объект sel, если верить отладчику, - это тоже Range, так что разницы по идее никакой и не должно быть. Кто-нить с таким сталкивался?..

Ms Office Excel 2003 (11.8120.8122) SP2 Rus, Axapta 3.0 SP5 KR2