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;
}
}