Сталкивался с подобным: в классе ComExcelDocument_RU в методе getWorkSheets() пришлось поставить задержку 100 мс перед получением списка листов файла, эта задержка помогает в некоторых случаях избежать системной ошибки Excel при выборе листа:
X++:
private COM getWorkSheets()
{
if (!comWorkSheets && m_comDocument)
{
try
{
sleep(100); // ЗАДЕРЖКА 100 МС
comWorkSheets = m_comDocument.worksheets();
}
catch (Exception::Error)
{
throw error("@GLS101577");
}
}
return comWorkSheets;
}