Makro:Zerlegen einer Formel in der viele Werte addiert werden
Aus XIMES
Hintergrund
Dieses Makro dient dazu, aus einer formel, zB
=24+91+185+93+73+57+67+264+784+1030+594+428+330+533
die Einzelwerte herauszuholen.
Wird als Teil von anderen Sachen verwendet. ZB wenn Tageswerte in Formel statt als Einzelwerte verwendet werden.
Makro
'Hilfsfunktionen für das Parsen
Function GetFormelwert(was As Variant, Optional fromPos As Integer = 1) As Variant
'Was beinhaltet die zu zerlegende Formel
'über fromPos wird gesteuert
Dim i As Integer
Dim pos As Integer
Dim kette As String
If fromPos = 0 Or fromPos > Len(was) Then
GetFormelwert = "END"
Else
'*** ANPASSEN, nach was wird gesucht
pos = InStr(fromPos + 1, was, "+")
If pos > 1 Then
GetFormelwert = Left(was, pos - 1)
GetFormelwert = Right(GetFormelwert, Len(GetFormelwert) - fromPos + 1)
fromPos = pos + 1
Else
GetFormelwert = Right(was, Len(was) - fromPos + 1)
fromPos = Len(was) + 1
End If
End If
End Function
Aufruf aus Struktur
Zb. Wenn der Range WERTE jeweils Formeln enthält
wert= GetFormelwert(WERTE(i, 1).FormulaR1C1, pos)
While wert<> "END"
printquick result, printline, wert
wer= GetFormelwert(WERTE(i, 1).FormulaR1C1, pos)
Wend
