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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2006, 22:00   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
(сейчас под рукой Аксапты нет, чтобы проверить - рискну по памяти! завтра по-любому уточню)
Если предположить, что rng - любой известный Вам диапазон на том листе, где Вы хотите удалить строки, то можно действовать примерно следующим образом:
X++:
COM rng;  // Range
COM wks;  // Worksheet
COM rows; // Worksheet.Rows
...........
rng = this.findRange(...); // например, так нам известен некий Range на нужном листе
...........
wks = rng.Parent(); // получили ссылку на рабочий лист
rows = wks.Rows();  // получили ссылку на все строки этого листа
COM::createFromVariant( rows.Item('101:200') ).Delete();
// т.е. удаляем одним махом строки с 101-й по 200-ю
...........
P.S. Всё правильно. Память не подвела. Привожу тестовый автономный примерчик:
X++:
static void Test_DeleteRows(Args _args)
{
    COM xlApp;
    COM wbks, wbk;
    COM wkss, wks1, wks;
    COM rows, rng;
    ;
     
    xlApp = new COM('Excel.Application');
    xlApp.Visible(true);
     
    wbks = xlApp.Workbooks();
    wbk = wbks.Add();
    wkss = wbk.Worksheets();
    wks1 = wkss.Item(1);
     
    rng = wks1.Range('F19'); // допустим так нам известен объект Range
     
    // wks добавлен для примера (можно было бы и через wks1)
    wks = rng.Parent(); // получили ссылку на рабочий лист
    rows = wks.Rows();  // получили ссылку на все строки этого листа
     
    COM::createFromObject( wks.Range('A10') ).Value2('Это строка перед удаляемыми');
    COM::createFromVariant( rows.Item('11:99') ).Formula('=ROW()');
    COM::createFromObject( wks.Range('A100') ).Value2('Это строка после удаляемых');
     
    // можно закоментировать строку ниже, чтобы убедиться в начальном существовании строк 11-99
    COM::createFromVariant( rows.Item('11:99') ).Delete();
    // т.е. удаляем одним махом строки с 11-й по 99-ю
     
}

Последний раз редактировалось Gustav; 27.06.2006 в 09:23.
За это сообщение автора поблагодарили: Hans (1).
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Свертка строк при выводе из Аксапты в Excel Zabr DAX: Программирование 20 21.02.2006 15:21
Автовысота строк при экспорте в excel andy239 DAX: Программирование 17 08.11.2005 16:51
Удаление отменённых строк в InventSettlement LCh DAX: Программирование 3 11.03.2004 08:04

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

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

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