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