我一直试图在Word文档中循环所有的形状,找到形状,将它们取消分组,然后删除名称为“-like”“Straight Arrow Connector*”等的形状。然而,我做错了什么,无法找出是什么。但是,它并没有删除每个形状。
我尝试了下面的for循环:
foreach($shape in $doc.Shapes){
if($shape.Name -like "Oval*" -or $shape.Name -like "Oval *"){
if($shape -ne $null) { #check if the shape exists before trying to delete it
$shape.Select()
$shape.Delete()
}
}
elseif($shape.Name -like "Straight Arrow Connector*" -or $shape.Name -like "Straight Arrow Connector *"){
if($shape -ne $null) { #check if the shape exists before trying to delete it
$shape.Select()
$shape.Delete()
}
}
elseif($shape.Name -like "Text Box *" or $shape.Name -like "Text Box*"){
if($shape -ne $null) { #check if the shape exists before trying to delete it
$shape.Select()
$shape.Delete()
}
}
}
但是就像我说的,它并没有删除所有的形状,即使它们的名字和我搜索的名字一样。有更好的方法吗?
2条答案
按热度按时间ni65a41a1#
然后,您可以简单地用一个循环来包围它,该循环迭代您希望删除的各种形状名称,如下所示:
scyqe7ek2#
发帖后我意识到我应该把形状存储在一个数组中,然后使用while循环删除数组中的所有内容。我这样做了,效果很好: