(在 VS 2017 上工作)
我有一个引用包含 2 个(或更多)单元格的 excel 列的范围。为了获取他的数据,我使用以下代码转换为 Object(,):
somevar = CType(ExcelWorksheet.Range(CeldaLat.Offset(0, 0), LastCell).Value2, Object(,))
请注意,我得到一个带有标题的列和一个带有数据的单元格。 CeldaLat引用范围的第一个单元格,LastCell引用数据的最后一个单元格。
LastCell = CeldaLat.End(Excel.XlDirection.xlDown)
我不想要标题(第一行的“纬度”),所以我更改了 offset() 以仅使用以下代码获取数据:
somevar = CType(ExcelWorksheet.Range(CeldaLat.Offset(1, 0), LastCell).Value2, Object(,))
当我有超过 1 行数据(范围大于 2 行)时,我工作得很好,但在前一张图像上显示的情况下,(2 行范围,1 个数据单元格),我收到此错误:
错误是“无法将“System.String”转换为“System.Object[,]”

显然,当单个单元格留在范围内时,它不能转换为对象数组Object(,),(因为不是数组?)
有一行代码适用于所有情况吗?或者我需要创建一个函数来检查范围的长度以将其转换为对象(,)?


