我正在使用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."}**
如何处理...请帮忙
答案 0 :(得分:1)
抓住异常并按照您的意愿处理它?</ p>
答案 1 :(得分:1)
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
}
答案 2 :(得分:0)
使用内置的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;
}
}
然后你必须考虑null,但不会抛出错误。