C# 获取包含所有形状对象的Excel范围

C# 获取包含所有形状对象的Excel范围,c#,excel,vsto,C#,Excel,Vsto,在VSTO(C#)项目中,我想拍摄UsedRange,包括图形和图表等形状对象 1。有没有办法获得形状对象的使用范围? 因为我找不到这样的方法,所以我考虑使用以下方法计算边: foreach (Excel.Shape shape in shapeObjects) { float shapeBottom = shape.Top + shape.Height; float shapeRight = shape.Left + shape.Width; if (maxBot

在VSTO(C#)项目中,我想拍摄UsedRange,包括图形和图表等形状对象

1。有没有办法获得形状对象的使用范围?

因为我找不到这样的方法,所以我考虑使用以下方法计算边:

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);
foreach(shapeObjects中的Excel.Shape)
{
浮动形状块TM=形状。顶部+形状。高度;
float shapeRight=shape.Left+shape.Width;
如果(最大底部<形状块)
{
maxBottom=形状块;
}
if(maxRight
现在我有一个问题,就是从maxBottom和maxRight得到范围


2。有没有办法通过给定宽度和高度来获取范围对象?

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

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

形状有一个
BottomRightCell
属性,该属性返回形状右下角覆盖的单元格。如果对每个形状遍历该属性,则应该能够收集所需范围内最右边的列和最后一行。你的射程左上角是固定的吗?是的,这解决了我的问题1(所以没有问题2)。请贴出答案。谢谢形状有一个
BottomRightCell
属性,返回形状右下角覆盖的单元格。如果对每个形状遍历该属性,则应该能够收集所需范围内最右边的列和最后一行。你的射程左上角是固定的吗?是的,这解决了我的问题1(所以没有问题2)。请贴出答案。谢谢