无法转换类型为' System .__ ComObject'的COM对象。到班级类型' System.Array'

时间:2018-05-03 16:05:03

标签: excel windows vb.net com

我尝试用VB.net读取excel char,我使用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
  Message =无法将类型为“System .__ ComObject”的COM对象强制转换为类类型“System.Array”。表示COM组件的类型实例不能强制转换为不表示COM组件的类型;不过,只要基础COM组件支持对接口IID的QueryInterface调用,就能将这些实例强制转换为接口。

我搜索谷歌并没有太多有用的信息,所以任何帮助都是值得欣赏的。

1 个答案:

答案 0 :(得分:0)

Range property返回Range object。要获取该值,请使用ValueValue2Range object属性。当Range object跨越多个单元格时,该值将为2D数组(矩阵)。如果Range object仅跨越单个单元格,则该值将为标量。

Debug.Print(LBound(area.Value))