Excel互操作:按数字引用,而不是按字符串引用

本文关键字:引用 字符串 互操作 数字 Excel | 更新日期: 2023-09-27 17:57:29

早上好。

在阅读了一个关于优化ExcelInterop的问题的答案后,我发现使用worksheet.Range["A1:C3"](与worksheet.get_range("A1:C3")相同)引用单元格不是很方便。我想以某种方式使用整数/长数字引用单元格,并且我不想将列编号{1,2,3,…}映射到列字母{"A","B","C",…}。

注意:我知道.Cells,但这不是一个选项,因为它只返回单个单元格AFAIK。

知道吗?

关于

Excel互操作:按数字引用,而不是按字符串引用

在Excel宏(VBA)中,可以使用以下方式:

Dim rngStart As Range
Set rngStart = Range("A1")
Dim rngEnd As Range
Set rngEnd = rngStart.Rows(3).Columns(4)
Dim rngFinal As Range
Set rngFinal = Range(rngStart, rngEnd)
rngFinal.Select

应该可以很容易地将其重写为C#/VB.NET。

您可以使用Cells属性创建一个Range对象,该对象可以用作Range属性的参数。

查看此处的示例:http://msdn.microsoft.com/en-us/library/bb178282.aspx在页面中间有一个示例,您可以使用Cells属性获取两个范围对象,并将其传递给range属性,而不是传递字符串:

With Worksheets(1)
    .Range(.Cells(1, 1), _
        .Cells(10, 10)).Borders.LineStyle = xlThick
End With

通常,Cells属性返回一个Range对象,您可以使用该对象执行任何操作:http://msdn.microsoft.com/en-us/library/bb148836.aspx