Удалить указанное изображение с помощью Excel VBA - PullRequest
0 голосов
/ 28 января 2020

Продолжение операции, поднятой в этом выпуске:

Копирование изображения между листами с мгновенным изменением размера и настройкой

Теперь я хотел бы установить автомат c Опция удаления по клику для этих вновь скопированных изображений.

enter image description here

Для этой цели я написал простой макрос:

  Sub Signature_remove()
  '
  ' Signature_remove Macro
  '


   ActiveSheet.Shapes.Range(Array("Picture 49")).Select
   Selection.Delete
   Sheets("BoQ Civils").Select
   ActiveSheet.Shapes.Range(Array("Picture 72")).Select
   Selection.Delete
 End Sub

потому что это относится к 2 листам. К сожалению, это была не мудрая идея, потому что она возвращает идентификатор изображения в массиве, который будет меняться при повторении процесса. В свою очередь, я не могу использовать

          Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count)

, потому что боюсь, что все изображения, размещенные на этом листе, будут удалены.

Есть ли какое-либо решение для быстрого удаления этих изображений?

1 Ответ

2 голосов
/ 28 января 2020

Позвольте мне разобрать это:

Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count)

Sheets("BoQ Civils").Shapes.Count вернет количество изображений (форм в целом), которое вы имеете в листе BoQ Civils, поэтому Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count) вернет изображение с последним индексом Таким образом, изображение, которое было добавлено последним.

В свою очередь, вы в безопасности - вы не хотите удалять все изображения на листе, только последнее.

И это то, что вы после из того, что я понимаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...