Невозможно привести 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))