VBA Excel, если заявление для удаления фигур с идентификатором как-то - PullRequest
0 голосов
/ 09 марта 2020

У меня в активной рабочей книге более 1 фигуры с именем "Рисунок ...".

Я хочу удалить ее вместе с другими фигурами, у которых есть указанные идентификаторы ~

Поскольку у них нет проблем, так как у них есть уникальный идентификатор, у меня есть проблема с двумя из них, называемыми «Изображение ...».

Мой код выглядит так:

 Sub ImgFullRemove3()
 Dim Pic As Picture
 Dim PicName As String, PicName2 As String, PicName3 As String
  On Error Resume Next
  Application.ScreenUpdating = False
  PicName = "Cable_Number"
  PicName2 = "Divider"
  PicName3 = "*Picture*"

  For Each Pic In ActiveSheet.Pictures
  Debug.Print Pic.Name
    If Pic.Name = PicName Or PicName2 Or PicName3 Then
        ActiveSheet.Shapes("Cable_Number").Delete
        ActiveSheet.Shapes("Divider").Delete
        ActiveSheet.Shapes("*Picture*").Delete
    End If
  Next
  Application.ScreenUpdating = True

 End Sub

Он ничего не возвращает, аналогично другому, приведенному ниже:

  Sub ImgFullRemove()
  Dim Img As Picture
  Dim ImgName As String
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each Img In ActiveSheet.Pictures
  Debug.Print Img.Name
  If Img.Name Like "*Picture*" Then
  ActiveSheet.Shapes.Delete
  End If
  Next
  Application.ScreenUpdating = True

  End Sub

, который относится только к этим объектам "Pictures ...". Результат точно такой же.

Как я могу заставить этот код работать правильно?

1 Ответ

0 голосов
/ 09 марта 2020

Вот модификация вашего первого примера кода, которая, я думаю, достигнет желаемого результата.

PicName = "Cable_Number"
PicName2 = "Divider"
PicName3 = "*Picture*"

For Each pic In ActiveSheet.Pictures
  If pic.Name = PicName Or _
      pic.Name = PicName2 Or _
      pic.Name Like PicName3 Then
          pic.Delete
  End If
Next

Примечание: вы не можете использовать If так, как вы пытались - т.е. если A = X, Y or Z.

Вы должны проверить, если A = X or A = Y or A = Z.

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