Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array wird in CALL Aufruf ungewollt verändert

Array wird in CALL Aufruf ungewollt verändert
Andreas
Hallo Excel Freunde,
ich nage derzeit an einem Problem, welches ich gedanklich nicht zu fassen bekomme.
Zum Hintergrund: Ich habe für umfangreiche Prozeduren, insbesondere in PivotTabellen, eine Prozedur entwickelt, die im Application.StatusBar einen Fortschrittsbalken laufen läßt, der mich die Gesamtdauer gut abschätzen läßt. Diese Prozedur bekommt die Referenzwerte im Aufruf mit und ermittelt daraus insbesondere die Double Variable um den StatusBar beim letzten Durchlauf exakt auf der Gesamtlänge von 255 Zeichen enden zu lassen. Die Referenzwerte können als Range, Collection oder Array (varRef as Variant) mitgegeben werden. Die Prozedur erkennt um welchen Typ es sich handelt und liest die Werte dementsprechend aus. Nun habe ich das Problem, daß ich im aufrufenden Code „Sub Objektbezuggehtverloren()“ das Array „arrPvf“ fülle und dann den „Sub StatusBar_prc“ aufrufe. Nach der Zeile mit dem CALL ist jedoch das „arrPvf“ defekt (Laufzeitfehler 424: Objekt erforderlich). Aber eigentlich sollte die aufgerufene Prozedur ein Array in der aufrufenden Prozedur doch überhaupt nicht verändern? Aber genau dies scheint zu passieren.
Wenn ich Zeile 102 – 115 („With varRef(intDim1, l)/ End With“ auskommentiere, dann läuft der Code durch. Ich kann mir nicht erklären, warum dieser Fehler kommt.
https://www.herber.de/bbs/user/77556.xls
Ich würde mich sehr freuen, wenn jemand aus dem Forum eine Idee hat, was der Grund für den Fehler ist.
Vielen Dank und Grüße, Andreas Hanisch

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array wird in CALL Aufruf ungewollt verändert
18.11.2011 14:15:09
Rudi
Hallo,
Aber eigentlich sollte die aufgerufene Prozedur ein Array in der aufrufenden Prozedur doch überhaupt nicht verändern?
Dann könntest du ein Array ja auch nicht z.B. per QuickSort sortieren.
Sub StatusBar_prc(ByVal varRef As Variant, Optional.....
Gruß
Rudi
AW: Array wird in CALL Aufruf ungewollt verändert
18.11.2011 14:50:31
Andreas
Lieber Rudi,
Du hast Recht... da war ein Bruch in meiner Logik. Und der Zusatz "ByVal" bringt alles perfekt zum Laufen. Danke Dir. Ich muß zugeben, daß ich zum Thema ByRef und ByVal mir schon einmal den Artikel von Hans W. Herber auf Wikipedia durchgelesen habe und mir damals nicht ganz klar war, ob das jemals für meine Programmierungen relevant sein könnte. Nun ja, was zu beweisen war... ich habe den Artikel gleich wieder rausgesucht.
Dir vielen Dank für Deine schnelle und präzise Hilfe! Das ist so cool! Ich dacht schon, ich bin nicht ganz dicht, daß es nicht funktioniert...
Habe ein schönes Wochenende.
Grüße aus Berlin, Andreas Hanisch
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige