kein Schleifenabbruch am Ende der Loop Durchgänge: Fehler 91
04.07.2025 17:12:54
AniLH
Zu meiner Fragestellung habe ich ein paar Antworten gefunden, aber nicht das was ich suche.
Ich möchte einen bestimmten Ausdruck ,in meinem Fall Formeln die "Diamant" enthalten, durch ihren Zellwert ersetzen.
Ich habe dafür folgendes Makro geschrieben, dass bis kurz vor dem Ende auch super funktioniert, dann aber mit der Fehlermeldung Laufzeitfehler `91`: Objektvariable oder With-Blockvariable nicht festgelegt endet. Schiebe ich den Cursor per Hand wieder auf die Zeile "Set C = .Find(strFunction, LookIn:=xlFormulas, lookat:=xlPart)" dann funktioniert es einwandfrei. Hat wahrscheinlich damit zu tun, dass das Makro nicht den ersten Eintrag (in diesem Bsp ist in der Zelle L42 auch die erste zu ersetzende Formel), nimmt, sondern L45 (den zweiten Eintrag mit Formel). Ich kann mich hier auch total irren, da ich die Funktionen nicht zu 100 % durchdringe...
Vielleicht kann mir hier jemand helfen, dass würde meine Arbeit für die kommende Wirtschaftsplanung total erleichtern :-) Die Diamantformeln sind super, bei Präsentationen an anderen Rechnern neigen Sie aber dazu "..." Werte anzuzeigen und müssten einmal komplett neu gelesen werden (nicht jeder Rechner hat nötigen Voraussetzungen und es dauert auch ewig).
Hier das Makro:
Public Sub DiamantWerte()
Const strFunction As String = "Diamant"
Dim C As Range, firstAddr As String
Dim rngSearch As Range
Set rngSearch = [L42:L48]
With rngSearch
Set C = .Find(strFunction, LookIn:=xlFormulas, lookat:=xlPart)
If Not C Is Nothing Then
firstAddr = C.Address
Do
C = C.Value
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address > firstAddr ---- Hier kommt ganz am Ende, wenn im ganzen Bereich alles Ersetzt wurde die Fehlermeldung. C ist dann auch = Nothing
End If
End With
End Sub
Vielen lieben Dank, falls mir jemand das Brett vorm Kopf entfernen kann!!
AniLH
Anzeige