VSTO Excel:如何检查是否可以select一个范围?

有什么办法来检查一个范围是否可以select(或以任何方式使用),就像某种validation?

我有VSTO 2.5 SE和Excel 2003的这个问题。每当我删除这些行, firstSelectedItem.Select()抛出一个HResult错误。 好的,我已经想出了一个办法,但是我正在寻找一个“更好”的方式,一些简单的比较或者看看是否可以selectfirstSelectedItem ,或者是否应该尝试select其他范围。

这里是示例代码。

using ExcelIntOp = Microsoft.Office.Interop.Excel; ExcelIntOp.Range firstSelectedItem = null; for (int i = selectedRange.Rows.Count; i > 0; i--) { firstSelectedItem = ((ExcelIntOp.Range)selectedRange.Cells[1, 1]); if (firstSelectedItem.Value2 == null) firstSelectedItem.EntireRow.Delete(System.Type.Missing); } if (firstSelectedItem != null) firstSelectedItem.Select(); 

删除之后,您不能Select firstSelectedItem 。 如果您不想在select之前检查firstSelectedItem是否有效,那么在删除之后将其重命名为有效单元格。

 for (int i = selectedRange.Rows.Count; i > 0; i--) { firstSelectedItem = ((ExcelIntOp.Range)selectedRange.Cells[i, 1]); if (firstSelectedItem.Value2 == null) { firstSelectedItem.EntireRow.Delete(System.Type.Missing); firstSelectedItem = ((ExcelIntOp.Range)selectedRange.Cells[i, 1]); } } firstSelectedItem.Select(); 

顺便说一句,我假设你misstype你的firstSelectedItem赋值语句,它应该是[i,1]不是[1,1]