Официально, Excel.Worksheet.UsedRange.Rows и Excel.Worksheet.UsedRange.Columns.
На практике это глючит, вы должны вычесть начальную строку и столбец. Ближайший к правильному ответу:
Public ReadOnly Property LastColumn() As Integer
Get
Return ExcelWorksheet.UsedRange.Columns.Count + _
ExcelWorksheet.UsedRange.Column - 1
End Get
End Property
Public ReadOnly Property LastRow() As Integer
Get
Return ExcelWorksheet.UsedRange.Rows.Count + _
ExcelWorksheet.UsedRange.Row - 1
End Get
End Property
Возвращает как минимум всех использованных ячеек, иногда чуть больше. «Немного больше» может быть вызвано пустыми ячейками (а не пустыми) и другими случайными вещами Из исследования, которое я провел, это лучшее, что можно сделать.
Если вы действительно хотите выбрать все , тогда
ExcelWorksheet.Activate()
ExcelWorksheet.Cells.Select()