< so dass er jetzt wenigstens pro forma funktioniert
Meine liebe Corina,
aber wirklich nur pro forma funktioniert und immer nur das "Else" – Statement abarbeitet.
With rng
For Each rng In .Cells
If .Text = shp.TextFrame2.TextRange.Characters.Text
der Vergleich wird niemals erfüllt, denn ".Text" = Null = keine Daten
= nur dem Umstand zu verdanken, dass der Code hier durch ein Range-Objekt iteriert und das hat glücklicherweise eine Text-Eigenschaft.
Nur leider nicht für diesen Zweck !
= und deshalb kein Laufzeitfehler aufkeimt :O
Versuch einmal erst zu abstrahieren, bevor du Code produzierst.
z.B. :
Für jede Zelle im Bereich
Wenn Wert der Zelle, dann....
oder
.
Nächste Zelle
und nicht so :o
Mit Bereich
Für jeden Bereich in seiner Zelle
Wenn Wert des Bereichs, dann .....
(vielleicht merkst du schon jetzt dass du dich verfliegst – hm ?)
Ebenso wie im Code in deinem obigen Post verkomplizierst du mit "With...End With" Konstrukt
und nach der 3. Einrückung fällt dir nicht mehr auf, dass .....
einem ! Text die Inhalte eines ganzen Bereichs raufgedrückt werden(sollen)
ein Bereich dagegen bekommt eine Texteigenschaft (hä – wie bitte ?) und .....
der lässt sich das gefallen, denn vorsichtshalber wurde der als Variantwert deklariert :D
Macht nix, denn die nächste Bereichszuweisung geht ja wegen dieser Verwechslung garantiert NET !
Last.not.Least, was soll der ErrHandler zur Entwicklungszeit (der kommt gewiss vom Schneemann)
Wie du siehst, im ersten Fall nützt er nicht, da dank deiner "Erfindung" kein echter Laufzeitfehler.
Oder wie im Fall, dass der Code mehr Gelegenheit zum Abflug als Zeilen ist so was zum "Lernen" unbrauchbar.
Schöne Grüße
|