如何使用Excel Interop从行索引和列索引中获取范围对象?

时间:2015-07-10 17:20:22

标签: vb.net excel-interop

我正在学习VB.Net并尝试从VBA过渡。如何使用行和列索引检索范围类型对象?

在VBA中,我会使用Worksheet.Cells([Row,Column]),这将返回Range类型的对象 但是,使用Excel Interop,返回的内容为Object 示例:

Dim MyExcel as new Application
Dim MyBook as new Workbook=MyExcel.Workbooks.Open("SomePath\SomeFile.xlsx")
Dim MySheet as new Worksheet=MyBook.Sheets("SomeSheet")
MessageBox.Show(CStr(Sheet2015.Cells(1, 1).Value))

现在,the MSDN for Worksheet.Cells说:

  

因为 属性是范围的默认属性   对象,您可以在之后立即指定行和列索引   Cells关键字。有关更多信息,请参阅Item属性。

但是从该页面到Item属性的链接将您带到Worksheet.Item,而不是Range.Item - 所以也许应该说

  

" 属性是工作表的默认属性   对象..."

Worksheet.Item属性的返回是Object类型的对象,这解释了为什么我没有获得intellisense :(

那么我可以使用另一种方法,通过提供单元格的索引(行,列)而不是地址,从工作表中返回 Range 对象?

我知道我可以使用Worksheet.Range并提供A1引用的地址,但这对我来说比使用行和列索引要复杂得多。

我也知道我可以将Worksheet.Cells[R,C]转换为Range类型,但我更愿意找到返回范围的方法。 (请参阅my other question here关于使用COM对象作为基本类型Object

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以按如下方式指定范围:

sheetName.Range(sheetName.Cells(row1, col1), sheetName.Cells(row2, col2))

然后您可以将此范围用于任何您想要的范围。

是的,我意识到这个答案很晚,但我遇到了同样的问题......