考慮一個包含許多形狀的Excel工作表。要選擇兩種形狀:刪除所有與圖案匹配的Excel繪圖圖層形狀
ActiveSheet.Shapes.Range(Array("Freeform 314", "Freeform 278")).Select
的目標是要刪除所有的形狀開始「自由形式」。
我找到一個引用的MS示例MS VBScript正則表達式5.5,但形狀不駐留在特定的單元格上。數量或具體數量的形狀幾乎是未知的。所以一個醜陋的解決方案可能是蠻橫的字符串名稱,另一方面,我希望你能幫助我實現一個優雅的解決方案。
下面的代碼不起作用,但您可以更好地瞭解問題。
Sub DeleteShapes()
Dim re As New RegExp
re.Pattern = "Freeform*"
Dim cell As Range
For Each cell In ActiveSheet.Shapes.Range(Array(re.Pattern)).Select
Selection.delete
Next cell
End Sub
非常感謝,喜歡這個解決方案 – 2010-12-03 19:18:14