AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2012, 17:01   #1  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Как перейти на другой лист Excel
Всем доброго времени суток. Если не затруднит помогите советом. У меня слудующая ситуация - есть документ эксель, я туда заношу некоторые данные, сначала на первый лист, а потом мне нужно перейти на другой лист. Как это сделать?
xlApp = new COM('Excel.Application');
//xlApp.Visible(true);
wbks = xlApp.Workbooks(); // comWorkBooks = m_comApplication.workBooks();

varTemlateName = new COMVariant(COMVariantInOut::IN, COMVariantType::VT_BSTR);
varTemlateName.bStr(template);

wbk = wbks.Add(varTemlateName);
wkss = wbk.Worksheets();
wks = wkss.Item(1);
rng = wks.Range('A1');
......
cell = rng.Offset(11, 42);
cell.Value2(bag);
Если я напишу
wks = wkss.Item(3);
rng = wks.Range('A1');
то что мне надо выводится на третий лист но AX выдает ошибку "Метод "Select" в COM-объекте класса "Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Метод Select из класса Range завершен неверно.
" как быть?
Старый 17.04.2012, 17:09   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
A где у вас Select в коде? Дело в том, что через Value (Value2) менять данные на третьем листе можно, находясь на любом другом. При этом ничего не надо селектировать.

Если же всё-таки надо что-то выбрать на другом листе при помощи Select, то тогда этому листу предварительно надо сделать Activate ( т.е wks.Activate() )
За это сообщение автора поблагодарили: sashanka (1).
Старый 17.04.2012, 18:35   #3  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Вы имеете ввиду select по xls. К сожалению не проекта перед глазами, но насколько я помню у меня нет select-а по xls. Как мне обратиться к ячейкам на третьем листе ?

Последний раз редактировалось smailik; 17.04.2012 в 18:40.
Старый 18.04.2012, 10:13   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Я не имею в виду "SELECT по xls" в смысле SQL (для этого у вас в представленных фрагментах кода не видно следов присутствия ADO и сохраненного файла Excel).

Я ориентируюсь на сообщение про "метод Select объекта Range". Оно означает, что где-то в коде встречается оператор типа rng.Select() или cell.Select(), вызванный для неактивного в данный момент рабочего листа.

Посмотрите мой код вот здесь: Как отследить все факты создания таблиц при постинге? , метод sendRecordsetToExcel. Там предусмотрен вывод на несколько листов. И увидите там wks.Activate(). Вот и вам так же надо сделать.

Если Activate не поможет, то тогда покажите весь свой код, можно будет поточнее диагноз поставить.
Старый 18.04.2012, 15:59   #5  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
спасибо за ответы, победил я это изменением метода обращения к excel. Переписал все для ComExcelDocument_RU.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Новый лист в Excel JuniorAx DAX: Программирование 6 27.09.2011 16:38
Sample Design Patterns: Microsoft Dynamics AX - Remedy for slow Microsoft Excel import Blog bot DAX Blogs 0 29.05.2011 17:13
Переместить лист Excel novic DAX: Программирование 7 01.07.2010 19:51
Как в отчете перейти на новый лист? MIkeFW DAX: Программирование 1 26.12.2003 13:58

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:33.