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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.02.2011, 19:10   #25  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Может быть написать макрос, который бы удалял это апострофы перед открытием ?
Показалось занятным, соорудил джоб:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;

    COMEnum2Object  cellCollection;
    COM             cell;
    COMVariant      prefChar;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');
    range.Value2("'30101810100000000859"); // 1. выводим значения с ведущим апострофом (одинарной кавычкой)

    print 'Загляните в окошко Excel';
    pause;

    range.NumberFormat('@'); // 2. форматируем заполненный диапазон как Текст

    cellCollection = new COMEnum2Object(range);

    // 3. перебирая ячейки диапазона, удаляем ведущий апостроф, если находим
    for (cell = cellCollection.getFirst(); cell; cell = cellCollection.getNext())
    {
        prefChar = cell.PrefixCharacter();
        if (prefChar.bStr() == "'")
        {
            cell.Value2(cell.Value2()); // "удаляем" = переписываем значение само на себя
        }
    }

    info('Еще раз загляните в окошко Excel');
}
НО! НО... Признаться, не очень понимаю, почему у Вас не сработало предварительное форматирование как текст:
Цитата:
Сообщение от tolstjak Посмотреть сообщение
столбец, в который выводится счет, делал текстовым- не помогает.
Вот, вроде всё работает:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');

    range.NumberFormat('@'); // предварительное форматирование КАК ТЕКСТ ячеек вывода коррсчета
    range.Value2("30101810100000000859"); // выводим значения коррсчета БЕЗ апострофа
}
В общем, что имеем в сухом остатке? Поговорили об апострофе, короче
За это сообщение автора поблагодарили: tolstjak (1).
Теги
excel, pastespecial

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод всех меток из заданного уровня на заданных языках в Excel wojzeh DAX: Программирование 0 19.03.2010 23:45
Помогите сделать действие в Excel через COM kashperuk DAX: Программирование 25 10.09.2007 15:59
dynamicsusers: DL Tips And Tricks: ADO Database Reader (Jet way) - Excel Example Blog bot DAX Blogs 0 02.08.2007 03:50
Экспорт в Excel - поле формата "Дата" Ned DAX: Программирование 15 25.04.2003 10:01

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

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

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