早上好。
在阅读answer on a question about optimizing Excel Interop之后,我发现使用worksheet.Range["A1:C3"]
(与worksheet.get_range("A1:C3")
相同)引用单元格并不是很方便。我想以某种方式使用整数/长数来引用单元格,我不想将列号{1,2,3,...}映射到列字母{“A”,“B”,“C” “,......}。
注意:我知道.Cells
,但这不是一个选项,因为它只返回单个单元格AFAIK。
有什么想法吗?
问候
答案 0 :(得分:3)
在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。
答案 1 :(得分:2)
您可以使用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