|
26.06.2006, 22:00 | #1 |
Moderator
|
(сейчас под рукой Аксапты нет, чтобы проверить - рискну по памяти! завтра по-любому уточню)
Если предположить, что 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-ю ........... 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 |
|
|