【发布时间】:2015-01-07 02:39:10
【问题描述】:
我有一个读取和写入 excel 文件的 vb.net 程序。我需要为特定任务使用“范围”功能,但它需要单元格的实际值。我所拥有的只是行号和列号,这取决于用户在做什么。如何在不进行硬编码的情况下根据行/列号获取实际的单元格位置。
示例: 第 1 行,第 1 列 = “A1” 第 5 行第 27 列 = "AA5"
【问题讨论】:
我有一个读取和写入 excel 文件的 vb.net 程序。我需要为特定任务使用“范围”功能,但它需要单元格的实际值。我所拥有的只是行号和列号,这取决于用户在做什么。如何在不进行硬编码的情况下根据行/列号获取实际的单元格位置。
示例: 第 1 行,第 1 列 = “A1” 第 5 行第 27 列 = "AA5"
【问题讨论】:
在 vb.net 中,您需要显式转换每个对象,如下所示。
CellValue = CType(CType(CType(ExcelApp.Workbooks("WorkbookName"), Excel.Workbook).Worksheets("SheetName"), Excel.Worksheet).Cells(rowNum, colNum), Excel.Range).Value
理想情况下,您应该已经有了工作簿和工作表的变量,这将使前面的语句更具可读性。例如:
Dim wbk As Excel.Workbook = CType(ExcelApp.Workbooks("WorkbookName"), Excel.Workbook)
Dim wst As Excel.Worksheet = CType(wbk.Worksheets("SheetName"), Excel.Worksheet)
Dim CellValue As Object = CType(wst.Cells(rowNum, colNum), Excel.Range).Value
注意:用您的 Excel 应用程序变量替换 ExcelApp。
【讨论】:
Workbook("Name").Sheets("Name").Cells(RowVariable, ColVariable).Address
【讨论】: