Обработка "Ячейки не найдены". Ошибка в Excel - PullRequest
3 голосов
/ 11 июня 2010

Я работаю над приложением Excel VSTO и нахожу ячейки с ошибками в таблицах, используя приведенный ниже код

Excel.Range rngTemp;
Excel.Range rngErrorRange;

Excel._Worksheet Sheet1 = (Excel._Worksheet)xlCTA.Sheets["Sheet1"];
rngTemp = wsCTAWK11.UsedRange;
rngErrorRange = rngTemp.SpecialCells(Excel.XlCellType.xlCellTypeFormulas, Excel.XlSpecialCellsValue.xlErrors);

, если действительно обнаружены ячейки с ошибками, то у меня нет проблем, но когда у меня нет каких-либоЯчейки ошибок в этом листе я получаю следующее исключение

**threw an exception of type 'System.Runtime.InteropServices.COMException'
    base {System.Runtime.InteropServices.ExternalException}: {"No cells were found."}**

Как с этим справиться ... Просьба помочь

Ответы [ 3 ]

1 голос
/ 11 июня 2010
try
{
    Excel.Range rngTemp;
    Excel.Range rngErrorRange;

    Excel._Worksheet Sheet1 = (Excel._Worksheet)xlCTA.Sheets["Sheet1"];
    rngTemp = wsCTAWK11.UsedRange;
    rngErrorRange = rngTemp.SpecialCells(Excel.XlCellType.xlCellTypeFormulas,
Excel.XlSpecialCellsValue.xlErrors);
}
catch (System.Runtime.InteropServices.COMException ex)
{
    //Handle here
}
1 голос
/ 11 июня 2010

Поймать исключение и обработать его, как вы хотите?

0 голосов
/ 16 августа 2013

Вместо использования встроенного метода SpecialCells напишите свой собственный метод расширения, который переносит вызов myRange.SpecialCells с обработкой ошибок.

Я сделал следующее:

 public static Range SpecialCellsCatchError(this Range myRange, XlCellType cellType)
    {
        try
        {
            return myRange.SpecialCells(cellType);
        }
        catch (System.Runtime.InteropServices.COMException ex)
        {
            return null;
        }
    }

Затем выпридется учитывать нулевое значение, но оно не выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...