获取ExcelRange对象的坐标

在Excel的COM API中:

给定一个ExcelRange对象,我将如何确定其中包含哪些行和列?

我不想要范围的内容 ,只是范围的“坐标”,最好是整数。

我没有注意到ExcelRange同时具有RowColumn属性,但是这些仅指示范围的左上angular的行和列。

注意:我正在使用Delphi,但是这个问题可能与通过COM使用Excel的任何语言相关,所以使用Delphi进行回答是没有必要的。

假设一个简单的矩形范围,然后您使用ExcelRange对象的RowsColumns属性。 select的左上angular由Range.RowRange.Column决定。 所选行和列的数量由Range.Rows.CountRange.Columns.Count

一般而言,Excel范围可以由多个非连续区域组成。 在这种情况下,您可以使用ExcelRangeAreas属性遍历组成复杂范围的简单矩形范围。

为了说明考虑下面的代码:

 procedure DescribeExcelRange(const Range: ExcelRange); var AreaIndex: Integer; Area: ExcelRange; begin for AreaIndex := 1 to Range.Areas.Count do begin Area := Range.Areas[i]; Writeln(Format( 'Area %d: R%dC%d:R%dC%d', [AreaIndex, Area.Row, Area.Column, Area.Row+Area.Rows.Count-1, Area.Column+Area.Columns.Count-1] )); end; end; 

我没有真正testing这个代码,所以我希望我已经正确地记住,索引是基于1的。