Schleifenproblem Ausgabe
29.11.2014 08:18:33
Andrea
Guten morgen!
Ich habe ein Problem mit der Ausgabe einer Schleife (innerhalb einer vba-Function) in eine Tabellenspalte (Excel) und hoffe, hier kann mir jemand helfen.
Die Datei ist als Anhang beigefügt.
Es geht darum, dass ich ein Summenprodukt rekursiv bestimmen möchte in einer Funktion An, mir die Ausgabe aber immer im Schleifendurchlauf alle vorherigen, richtigen Werte überschreibt und damit das gewünschte Ergebnis natürlich falsch wird (bis auf den Eintrag in der letzten Zelle).
Die Funktion SOLL folgendermaßen rechnen und eintragen:
A0 := 0 (ist Definition) [einzutragen in F2]
A1 = A0 + D1*B1 [einzutragen in F3]
A2 = A1 + D2*B2 [einzutragen in F4]
A3 = A2 + D3*B3 [einzutragen in F5]
:
:
Bzw. anders dargestellt (vielleicht hilft euch das weiter?)
A0 := 0
A1 = D1*B1
A2 = D1*B1 + D2*B2
A3 = D1*B1 + D2*B2 + D3*B3
:
:
Wenn ich also z.B. A3 (Function An(ByVal intN As Integer) As Double , intN ist dann 3) berechne, sollen die korrekten Berechnung von A0, A1 und A2 jeweils in der F-Spalte in [F1 beinhaltet Spaltenüberschrift] F2, F3 und F4 stehen (bleiben) und der A3-Wert danach in Zelle F5 ergänzt werden.
Insgesamt also intN+1 richtige Werte, alle Werte richtig.
Nun TUT meine Funktion aber leider folgendes: (Auch wieder am Beispiel von A3)
Zelle F0: 0 (richtig... aber wohl leider nur wegen der Hardcodierung)
Zelle F1
Zelle F2
Zelle F3 korrekter Wert
Insgesamt also nur 1 richtiger Wert und zwar der ganz am Schluss.
Es ist egal, für welche Laufzeiten ich das Summenprodukt berechne, meine Funktion rechnet IMMER richtig. Sie weiß, wo sie beginnen muss und sie weiß, in welcher Zeile sie enden muss und dort schreibt sie immer das richtige Ergebnis rein. Soweit gut.
Allerding werden nun dummerweise alle Werte davor nicht mehr dargestellt bzw. durch die Schleifendurchläufe überschrieben.
Was mache ich denn falsch?
Vielen Dank für eure Hilfe und liebe Grüße,
Andrea