VBA Excel удаляет фигуры с более чем одного листа одновременно - PullRequest
0 голосов
/ 27 февраля 2020

Я бы хотел, чтобы все указанные фигуры исчезли из более чем 1 листа. Это относится примерно к листам «Кабели». Это связано с моим предыдущим запросом:

VBA Excel выбирает и удаляет все фигуры с одинаковым идентификатором и удаляет

Согласно моему запросу относительно сохранения PDF

VBA excel за исключением указанных листов при сохранении версии .PDF

Я подготовил код, который выглядит следующим образом:

 Sub Firestopshapes()
 Dim shp As Shape
   Dim Ws As Worksheet

  If Ws.Name Like "*Cables*" Then
  'Set Ws = ActiveSheet

  For Each shp In Ws.Shapes
    If shp.Name = "Firestop" Then
        shp.Delete
    End If
  Next shp
 End If
End Sub

К сожалению, я получаю ошибку:

Переменная объекта или переменная блока не установлена ​​

Что я здесь не так сделал?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020

Чтобы закрыть этот вопрос ... вы забыли l oop во всех листах:

For Each Ws in ThisWorkbook.Worksheets
    If Ws.Name Like "*Cables*" Then
        ...
    End If
Next
1 голос
/ 27 февраля 2020

Рассмотрим:

Sub Firestopshapes()
    Dim shp As Shape
    Dim Ws As Worksheet
    For Each Ws In Sheets
      If InStr(Ws.Name, "Cables") > 0 And Ws.Shapes.Count > 0 Then
            For Each shp In Ws.Shapes
              If shp.Name = "Firestop" Then
                  shp.Delete
                End If
            Next shp
        End If
    Next Ws
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...