falsche Funktionswerte nach Arbeitsblattwechsel
02.12.2005 21:45:00
Peter
mein VBA-Problem besteht darin, dass ich eine Funktion geschrieben habe, die zwar funktioniert wie sie soll, nur dass bei einem Arbeitsblattwechsel "falsche" Parameter ausgewertet werden. Konkret soll die Funktion im jeweils verwendeten Arbeitsblatt die Standardabweichung einer Gruppe von Werten berechnen. Im Gegensatz zur Excelinternen Funktion sollen "Gewichtungsfaktoren" möglich sein, d.h. wie oft kommt welcher Wert in der auszuwertenden Liste vor.
Wechsle ich nun das Arbeitsblatt und editiere dort eine Zelle, so "saugt" die im anderen Arbeitsblatt verwendete Funktion die falschen Werte aus dem aktuellen Arbeitsblatt.
Vielen Dank schonmal für Eure Hilfe
Peter
Die Funktion sieht folgendermassen aus:
Private Function stabw(gewichtung As Range, werte As Range) As Double
stabw = 0
Dim summe As Double
Dim anzahl As Integer
Dim durchschnitt As Double
Dim i As Integer
Application.Volatile True
stabw = 0
anzahl = WorksheetFunction.Sum(gewichtung)
summe = WorksheetFunction.SumProduct(gewichtung, werte)
If anzahl "größer" 0 Then
durchschnitt = summe / anzahl
End If
If anzahl = 1 Then GoTo abbruch
For i = 0 To gewichtung.Rows.Count - 1
stabw = stabw + (Cells(gewichtung.Row + i, gewichtung.Column).Value) * _
((Cells(werte.Row + i, werte.Column).Value - durchschnitt) ^ 2)
Next i
stabw = (stabw / (anzahl - 1)) ^ 0.5
abbruch: