bveyndhoven
Gebruiker
- Lid geworden
- 3 jan 2012
- Berichten
- 21
Hey mensen,
Ik heb een tamelijk gecompliceerde vraag:
Ik heb in VBA een module "UDF's" waarin ik zelfgemaakte functies heb gedefinieerd. Deze formules kan ik in cellen gebruiken zoals ik bv. de formule SUM gebruik. De inhoud ervan is deze:
De functie Eval zet een tekstwaarde in een cel om en interpreteert deze als formule. Dus stel dat ik in A1 de waarde SUM(B1:B3) heb staan en in A2 de formule =Eval(A1), zal in A2 de som van het bereik B1 tot B3 komen.
De formule Sigma voert de wiskundige Sigma-bewerking uit. Bv. De formule =Sigma("2*x";"x";1;5) zal de formule "x*2" uitvoeren voor x = 1, 2, ..., 5 en de resultaten optellen, dus 2+4+6+8+10 = 30.
De Eval-formule werkt goed behalve voor dit ding:
Cel A1 bevat deze waarde: Sigma("x";"x";1;5). Cel A2 bevat =Eval(A1). Ik krijg de melding #VALUE!" terug.
Kan ik deze formule toch laten evalueren?
[edit]Via een andere thread ben ik al te weten gekomen dat een named formule iets flexibeler werkt. Het probleem met m'n Sigma-formule blijft, maar ik vermoed dat het iets te maken heeft met de dubbele aanhalingstekens in de parameters..."[/edit]
Alvast bedankt!
Ik heb een tamelijk gecompliceerde vraag:
Ik heb in VBA een module "UDF's" waarin ik zelfgemaakte functies heb gedefinieerd. Deze formules kan ik in cellen gebruiken zoals ik bv. de formule SUM gebruik. De inhoud ervan is deze:
Code:
Function Eval(r As Range) As Variant
Eval = Evaluate(r.Value)
End Function
Function Sigma(nformula As String, nvariable As String, nbegin As Integer, nend As Integer) As Variant
Dim result As Variant
Dim i As Integer
Dim minValue As Integer
Dim maxValue As Integer
result = 0
If nbegin > nend Then
minValue = nend
maxValue = nbegin
Else
minValue = nbegin
maxValue = nend
End If
For i = minValue To maxValue
result = result + Evaluate(Replace(nformula, nvariable, i))
Next
Sigma = result
End Function
De functie Eval zet een tekstwaarde in een cel om en interpreteert deze als formule. Dus stel dat ik in A1 de waarde SUM(B1:B3) heb staan en in A2 de formule =Eval(A1), zal in A2 de som van het bereik B1 tot B3 komen.
De formule Sigma voert de wiskundige Sigma-bewerking uit. Bv. De formule =Sigma("2*x";"x";1;5) zal de formule "x*2" uitvoeren voor x = 1, 2, ..., 5 en de resultaten optellen, dus 2+4+6+8+10 = 30.
De Eval-formule werkt goed behalve voor dit ding:
Cel A1 bevat deze waarde: Sigma("x";"x";1;5). Cel A2 bevat =Eval(A1). Ik krijg de melding #VALUE!" terug.
Kan ik deze formule toch laten evalueren?
[edit]Via een andere thread ben ik al te weten gekomen dat een named formule iets flexibeler werkt. Het probleem met m'n Sigma-formule blijft, maar ik vermoed dat het iets te maken heeft met de dubbele aanhalingstekens in de parameters..."[/edit]
Alvast bedankt!
Laatst bewerkt: