Microsoft Office Tutorials and References
In Depth Information
37 spalte = Application.Match(c.Address(0, 0), _
rngScenarios.Resize(1, UBound(arrCells) + 2), 0)
38 rngScenarios.Offset(x, spalte - 1).Value = _
sh.Scenarios(x).Values(z)
39 Next c
40 Next x
End Sub
In den Zeilen 10 bis 24 werden zwei ineinander verschachtelte Schleifen abgearbei-
tet, deren einzige Aufgabe das Sammeln aller Adressen der veränderbaren Zellen im
Array arrCells darstellt. Das ist deshalb so mühsam, weil die Szenarien unterschied-
liche Zellen benutzen können, aber auch viele doppelte vorkommen können, die aus-
sortiert werden müssen. Die innere Schleife ist eine For-Each-Next -Schleife, die alle
Zellen aus dem Bereich rngCells einzeln durchläuft. rngCells ist eine Objektvariable,
die alle veränderbaren Zellen eines Szenarios enthält.
Die If- Prüfung in Zeile 13 lässt nur die allererste Zelle durch. In dem Fall steht der Zähler
z auf 0. Alle weiteren Zellen müssen durch die Prüfung in Zeile 17. Iserror(Applica-
tion.Match)… liefert Wahr , wenn die Zelle neu ist. Nur dann wird sie dem Array ergänzt.
Match entspricht der Excel-Funktion VERGLEICH, welche die Position des Suchkriteri-
ums innerhalb eines Bereiches oder einer Matrix zurückgibt.
Ab Zeile 25 wird begonnen, den Szenariobereich zu füllen, zunächst mit Überschrif-
ten. In der Schleife von Zeile 27–29 wird das Array, das alle veränderbaren Zellen
gesammelt hat, in die erste Zeile des Bereiches geplottet.
Ab Zeile 30 wiederholt sich die Doppelschleife, von denen die äußere Schleife alle Sze-
narien durchläuft und die innere alle veränderbaren Zellen eines jeden Szenarios. Alle
Values müssen in den Datenbereich geschrieben werden, wobei in Zeile 37 zunächst
die richtige Spalte gefunden werden muss.
rngScenarios.Resize(1, UBound(arrCells) + 2)
… steht für die erste Zeile des Szenariobereiches, der die Zelladressen enthält. In dem
Bereich wird die Adresse der aktuellen Zelle c gesucht und ihre Position an die Variable
Spalte übergeben. Damit steht die Spaltenposition fest.
Die Zeile, in die der aktuelle Value geschrieben werden muss, ergibt sich ganz ein-
fach aus dem aktuellen Wert von x – vollendet in Codezeile 38.
Search JabSto ::




Custom Search