With Anweisung löscht Variant Instanz?!
Andreas
ich bin am Wochenende über ein Phänomen gestolpert, welches ich mit meinem bisherigen Wissen nicht erklären kann.
Ich habe eine Prozedur die von diversen anderen Codes aufgerufen wird. Es gibt einen Variant- Aufrufparameter varRef. Dieser kann fast alles sein. Ein Array (ein oder mehrdimensionales), eine Collection oder ein Range. Die Prozedur ermittelt durch einfache Prüfung, um was es sich handelt und schreibt alles in eine einheitliche Form um, mit der dann weitergearbeitet wird. Um die Prozedur noch etwas zu erweitern habe ich am Sonnabend nun an der Position 2: im VBA Code ein Prüfung einfügen wollen derzeit dargestellt durch die Zeile Debug.Print "2: "; varRef(l). Bei Strings innerhalb des varRef gab der Debug.Print nichts aus. An Position 1: hingegen wurde erwartungsgemäß der String im varRef ausgegeben. Aber dazwischen gab es nur eine With Anwiesung innerhalb derer geprüft wurde, um welche Form von Inhalt es sich im varREf handelt (Range oder Object). Wenn ich die With Anweisung auskommentieren, dann wird an Position 1 und (!) 2 der Inhalt korrekt ausgegeben.
Warum beeinflußt diese With Anweisung das varRef so negativ? Habe ich etwas übersehen oder unterliege ich einem eklatanten Denkfehler?!
Ich sehe den Wald vor lauter Bäumen nicht mehr und weiß nicht weiter, daß ich in so wenigen Codezeilen den Fehler nicht erkenne
Ich wäre sehr erfreut, wenn ein erfahrener und hilfsbereiter Forumsteilnehmer sich den Code einmal ansieht.
https://www.herber.de/bbs/user/81484.xlsm
Vielen Dank und Grüße aus Berlin, Andreas Hanisch