On Error Resume Next oder Select Case ...?

Antwort erstellen

Smileys
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek: :x: :v:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: On Error Resume Next oder Select Case ...?

On Error Resume Next oder Select Case ...?

#1

von d'r Bastler » 4. Jun 2024, 13:13

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!

Nach oben