Показать сообщение отдельно
Старый 31.01.2008, 14:27   #1  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Узнать строку и столбец именованной области в Excel
Для более гибких шаблонов потребовался сабж, следующий код (в виде расширения ComExcelDocument_RU) упорно не работает, укажите, пожалуйста, где неправ:

X++:
//Возвращает контейнер из строки и столбца именованной области в Excel
public container getNamedCellRowColumn(anytype _anyVal, int _workSheet = 1)
{
    COM comWorkSheet;
    COM names, name;
    COMVAriant tmp;
    container ret = connull();
    ;
    if (! m_comDocument)
        throw error(strfmt("@GEE6401", this.getApplicationName()));
    comWorkSheet   = this.getWorkSheet(_workSheet);
    comWorkSheet.activate();
    try
    {
        names = comWorkSheet.Names();
        name = COM::createFromVariant(names.Item(_anyVal));
//ПАДАЕТ уже ЗДЕСЬ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        tmp = name.RefersToR1C1();
        ret = [tmp.bStr()];
    }
    catch
    {
        checkFailed(strfmt("Чтение из Excel поля %1 завершилось ошибкой",_anyVal));
    }
    return ret;
}
вызываю
X++:
cnt = excelDocument.getNamedCellRowColumn("ReportType");