【问题标题】:Excel Cell Location Using Row And Column Numbers VB.net使用行号和列号 VB.net 的 Excel 单元格位置
【发布时间】:2015-01-07 02:39:10
【问题描述】:

我有一个读取和写入 excel 文件的 vb.net 程序。我需要为特定任务使用“范围”功能,但它需要单元格的实际值。我所拥有的只是行号和列号,这取决于用户在做什么。如何在不进行硬编码的情况下根据行/列号获取实际的单元格位置。

示例: 第 1 行,第 1 列 = “A1” 第 5 行第 27 列 = "AA5"

【问题讨论】:

    标签: vb.net excel


    【解决方案1】:

    在 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。

    【讨论】:

      【解决方案2】:

      Workbook("Name").Sheets("Name").Cells(RowVariable, ColVariable).Address

      【讨论】:

      • 使用 Option Strict Off(不是默认值,不是标准做法),此代码将起作用;但是,早期绑定更可取。 FWIW,OP 需要“单元格的实际值”,而不是地址。
      • “我如何根据行/列获取实际的单元格位置” 但我同意你的看法...
      猜你喜欢
      • 2015-03-14
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多