Невозможно привести COM-объект типа "System.__ComObject" к типу класса "System.Array".

Я пытался читать Excel char с VB.net, я использую VS2013 и Office2013

когда я использовал функцию LBOUND и UBOUND, это вызывало это исключение

код:

 Dim objApp As New Excel.Application
 Dim objWorkbook As Excel.Workbook
 Dim objWorksheet As Excel.Worksheet

 objWorkbook = objApp.Workbooks.Open(path & FileName)
 objWorksheet = objWorkbook.Sheets(2)
 area = objWorkSheet.Range("a7", "a8")
 Debug.Print(LBound(area))

и исключение:

未处理 System.InvalidCastException HResult = -2147467262
Сообщение = "Система.__ComObject", "COM", "System.Array", "COM", "COM", "COM", "COM", "COM", "COM". ID IID 的 QueryInterface 调用,就能将这些实例强制转换为接口。

Я ищу в Google и не так много полезной информации, поэтому любая помощь приветствуется.

1 ответ

Решение

Range свойство возвращает Range объект. Чтобы получить значение, используйте Value или же Value2 собственность Range объект. Значение будет 2D-массив (матрица), когда Range Объект охватывает более одной ячейки. Если Range Объект охватывает только одну ячейку, значение будет скалярным.

Debug.Print(LBound(area.Value))
Другие вопросы по тегам