C#: Excel: определить, является ли строка допустимой ссылкой на диапазон?

Как эта функция 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 ответ

Я хотел бы найти способ не полагаться на исключение для проверки действительности ссылки на ячейку. Но я не мог не найти способ напрямую проверить это.

Поэтому вместо этого я использую подход ОП. Проблема в том, что Microsoft.Office.Interop.Excel.Range является интерфейсом и не может быть создан напрямую. Согласно этому ответу, решение заключается в использовании 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;
   }
}
Другие вопросы по тегам