On Error Resume Next oder Select Case ...?

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 839
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 227 Mal
Danksagung erhalten: 122 Mal

On Error Resume Next oder Select Case ...?

#1

Beitrag von d'r Bastler »

Moin allerseits,
in einem anderen Forum tauchte die Frage auf, wie man beim Löschen von Shapes in einem Sheet Fehlermeldungen/Codeabbruch vermeiden kann, falls ein namentlich benanntes Shape nicht vorhanden ist. Als gängige Lösung hätte ich schnell eine Schleife mit On Error Resume Next vorgeschlagen.

Besser ist diese Lösung: Man steuert die Schleife mit Select Case Shape.Name, baut einen Case mit der Reihe der möglichen Namen und schon werden die Shapes abgefragt, sind sie da, werden sie gelöscht, falls nicht, passiert auch nichts. Etwas überarbeitet, könnte das dann so ausshen:

Code: Alles auswählen

Sub Test()
Dim shp As Shape, aShapes, i As Integer

aShapes = Array("Tpz 1", "Tpz 2", "Tpz 3")
With ThisWorkbook.ActiveSheet
For i = 0 To UBound(aShapes)
    For Each shp In .Shapes
        Select Case shp.Name
            Case aShapes(i)
                shp.Delete
        End Select
    Next
Next i
End With
End Sub
Das Array kann vielleicht die Arbeit auch an anderer Stelle vereinfachen.

Viel Spaß damit!
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste