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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2012, 13:01   #1  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
:( Функция Replace в Excel
Реализовывал возможность замены в экселевском документе и столкнулся с следующей бедой:

X++:
void findAndReplace(str _mark,
                    str _value)
{
    Com activeWorkbook;
    Com activeSheet;
    Com activeCell;
    Com selection;
    Com cells;
    Com replace;

    ;

    activeWorkbook = m_comApplication.ActiveWorkbook();
    activeSheet    = activeWorkbook.activeSheet();
    activeCell     = m_comApplication.activeCell();
    selection      = activeCell.Select();

    cells   = activeSheet.Cells();
    replace = cells.Replace('0', '1', 2, 1, false, false, false);
на последней сточке кода вылетает ошибка:

Метод "Replace" в COM-объекте класса "Range" возвратил код ошибки 0x80020005 (DISP_E_TYPEMISMATCH), который означает: Один или несколько аргументов не могли быть преобразованы.

Аргументы функции вроде простые 2 стринга, 2 интежер и 3 булеан, на какие преобразования ругается эксель неясно

Печалька
Может кто сталкивался с подобной проблемой?
Старый 23.04.2012, 13:24   #2  
Alexanderis.ua is offline
Alexanderis.ua
Участник
 
53 / 40 (2) +++
Регистрация: 25.12.2008
Адрес: Киев, Украина
Преобразование забыли.
Вот так попробуйте

X++:
     replace = cells.Replace('0', '1', 2, 1, 
                                       COMVariant::createFromBoolean(false), 
                                       COMVariant::createFromBoolean(false),                          
                                       COMVariant::createFromBoolean(false));
__________________
If it ain't broke, take it apart and find out why (с)
За это сообщение автора поблагодарили: Zabr (2), ex3em (1).
Старый 23.04.2012, 15:33   #3  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
Цитата:
Сообщение от Alexanderis.ua Посмотреть сообщение
Преобразование забыли.
Спасибо!
всё получилось )

рабочий код
X++:
    cells.Replace('!test1!',
                  'www',
                  #xlPart,
                  #xlByRows,
                  COMVariant::createFromBoolean(false),
                  COMVariant::createFromBoolean(false),
                  COMVariant::createFromBoolean(false));
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Иморт из Excel 2010. Как правильно закрыть Excel? jkspb DAX: Программирование 4 13.10.2013 00:55
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
Sample Design Patterns: Microsoft Dynamics AX - Remedy for slow Microsoft Excel import Blog bot DAX Blogs 0 29.05.2011 17:13
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45

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

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

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