2012-10-16 82 views
1

在VSTO(C#)项目中,我想采用UsedRange,包括图形和图表等形状对象。获取包含所有形状对象的Excel范围

1.是否有一种方法来获得UsedRange与形状对象?

因为我找不到这样的方法,我想通过使用这种计算边缘:

foreach (Excel.Shape shape in shapeObjects) 
{ 
    float shapeBottom = shape.Top + shape.Height; 
    float shapeRight = shape.Left + shape.Width; 
    if (maxBottom < shapeBottom) 
    { 
     maxBottom = shapeBottom; 
    } 
    if (maxRight < shapeRight) 
    { 
     maxRight = shapeRight; 
    } 
} 

Excel.Range r = <XXX>(maxBottom, maxRight); 

所以现在我有正从maxBottom和maxRight范围的问题。

2.有没有办法通过给出宽度和高度来获取Range对象?

+3

形状有一个'BottomRightCell'属性,它返回形状右下角覆盖的单元格。如果您针对每个形状遍历该属性,则应该能够收集所需范围的最右侧列和最后一行。您的范围的整个角落是否固定? –

+0

是的,这解决了我的问题1(所以没问题2)。请作为答复发布。 谢谢! –

回答

1

Shapes有一个BottomRightCell属性,它返回形状右下角覆盖的单元格。 如果您针对每种形状遍历该属性,则应该能够收集所需范围的最右侧列和最后一行。

相关问题