C#:Excel:确定字符串是否是有效的Range引用?

时间:2012-12-14 01:42:00

标签: c# .net vb.net excel-interop vb.net-to-c#

这个VB函数将如何像C#一样?目标是确定字符串ref是否代表有效的数据表Excel.Range。这不是一个简单的VB到C#转换,因为无法构造Range。

Private Function IsRange(ref) As Boolean
'   Returns True if ref is a Range
    Dim x As Range
    On Error Resume Next
    Set x = Range(ref)
    If Err = 0 Then IsRange = True Else IsRange = False
End Function

最佳

1 个答案:

答案 0 :(得分:0)

我希望找到一种方法,不必依赖异常来检查单元格引用的有效性。但我无法找到直接测试它的方法。

所以我正在使用OP的方法。问题是Microsoft.Office.Interop.Excel.Range是一个接口,无法直接创建。根据此answer,解决方案是使用get_Range_Application中的Sheet方法。

Microsoft.Office.Interop.Excel._Application ExcelApp;

private bool IsRange(string refr) {
   try {
      var unused = ExcelApp.Range[cellReference, Type.Missing];

      return true;
   }
   catch {
      return false;
   }
}