von mikeleb » Fr, 21.02.2014 18:46
Hallo Bernd,
da es mir keine Ruhe gelassen hat, habe ich mich mal an ein Makro gemacht.
Code: Alles auswählen
function textsumme(vArgument as variant)
GlobalScope.BasicLibraries.LoadLibrary("Tools")
dim eingang()
if not isarray(vArgument) then
redim eingang(0,0)
eingang(0,0)=vArgument
else
eingang=vArgument
end if
summe=0
for i=lBound(eingang()) to uBound(eingang())
for j=lBound(eingang(),2) to uBound(eingang(),2)
if isnumeric(eingang(i,j)) then
summe=summe+eingang(i,j)
else
eingang(i,j)=ReplaceString(eingang(i,j),"+-","-")
eingang(i,j)=ReplaceString(eingang(i,j),",",".")
summanden=split(eingang(i,j),"+")
for k=lBound(summanden()) to uBound(summanden())
summe=summe+val(summanden(k))
next
end if
next
next
textsumme=summe
End function
Mit dieser Funktion kannst du nun die Summe auch von Textzellen bilden, die selbst Summen oder auch Differenzen darstellen (siehe Beispieldatei). Sin din dem bereich Zahlen vorhanden werden diese auch akzeptiert und mitgerechnet.
- Dateianhänge
-
- textsumme.ods
- (9.7 KiB) 32-mal heruntergeladen
Hallo Bernd,
da es mir keine Ruhe gelassen hat, habe ich mich mal an ein Makro gemacht.
[code=php]function textsumme(vArgument as variant)
GlobalScope.BasicLibraries.LoadLibrary("Tools")
dim eingang()
if not isarray(vArgument) then
redim eingang(0,0)
eingang(0,0)=vArgument
else
eingang=vArgument
end if
summe=0
for i=lBound(eingang()) to uBound(eingang())
for j=lBound(eingang(),2) to uBound(eingang(),2)
if isnumeric(eingang(i,j)) then
summe=summe+eingang(i,j)
else
eingang(i,j)=ReplaceString(eingang(i,j),"+-","-")
eingang(i,j)=ReplaceString(eingang(i,j),",",".")
summanden=split(eingang(i,j),"+")
for k=lBound(summanden()) to uBound(summanden())
summe=summe+val(summanden(k))
next
end if
next
next
textsumme=summe
End function [/code]
Mit dieser Funktion kannst du nun die Summe auch von Textzellen bilden, die selbst Summen oder auch Differenzen darstellen (siehe Beispieldatei). Sin din dem bereich Zahlen vorhanden werden diese auch akzeptiert und mitgerechnet.