完成粘贴操作后,在工作簿中检测新形状的正确方法

所以我现在正在做这个…

//Codeblock edited to include otaku upgrade const String GIFpastespecialformat = @"Picture (GIF)"; const Int32 Onemoreshape = 1; Int32 shapeCount = sht.Shapes.Count; WorksheetPasteSpecialArgs wspa = new worksheetpastespecialargs(); wspa.Format = GIFpastespecialformat; wspa.Link = False; wspa.DisplayAsIcon = False; List<Int32> oldShapes = new List<Int32>(); foreach (var item in sht.Shapes.Items()) { oldShapes.Add(Item.ID); } sht.PasteSpecial(wspa); if((shapeCount + Onemoreshape) == sht.Shapes.Count) { foreach (var item in sht.Shapes.Items()) { if(oldShapes.Exists(i => i == item.ID) == false) { //work with shape here } } } else { //report and deal with comexception, user intervention, etc } 

其中sht是代表我正在使用的工作表的variables。

代码非常稳固。 可能唯一的增强我会做的只是保持形状的计数 – oldShapes.Count ,只是看看这个数字后,粘贴。 如果是这样,插入一个形状。