Рассмотрим рабочий лист Excel с множеством форм.Чтобы выбрать две фигуры:
ActiveSheet.Shapes.Range(Array("Freeform 314", "Freeform 278")).Select
Цель состоит в том, чтобы удалить все фигуры, начиная с «Свободная форма» .
Я нашел пример, ссылающийся на 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