Я написал постом выше, что можно не создавать отдельные переменные диапазонов для разового вызова. Диапазон как COM-объект можно передать методу при помощи волшебного слова Range с квалификатором родительского объекта, которым может выступать либо Worksheet, либо - и, возможно, это выглядит не столь естественно - Application (нужно помнить, что при использовании Application будет подразумеваться текущий активный Worksheet). В случае использования Worksheet выглядеть будет примерно так:
X++:
COM doc = new ComExcelDocument_RU();
COM worksheet;
worksheet = doc.getWorkSheet(1);
copyAndInsertRange( worksheet.Range(BookMark1),
worksheet.Range(BookMark2) );
Интересно, что в нашей Аксапте (3.0 SP4) метод getWorkSheet на слое dis объявлен как protected, а на слое var копипастом "переписан" как public - т.е., видимо, тоже пошла трещина сомнения, что же первично: букмарки или объекты.
Что касается проверок, то их мы уже однажды пообсуждали:
О проверках в классе ComExcelDocument_RU
Владимир, предлагаю на этом прервать нашу "битву парадигм" до будущих встреч в новых темах