Range

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Range

Re: Range

von Stephan » Fr, 08.08.2008 17:50

Schließlich werden Bereiche wie
A1:H1,B2:B10 ja auch unterstützt


Im Sinne Deines Beispiels? Dann wäre es gut wenn Du dafür einmal einen Code postest der das demonstriert, vielleicht finden wir dann gemeinsam eine Lösung.


Ein funktionierende Lösung ist in jedem Fall die Bereiche einzeln an das Parameterarray zu übergeben, was in Deinem konkreten Fall (wegen der 'geordneten' Zellen) auch mittels Schleife unaufwendig zu schreiben wäre)

Ich portiere gerade VBA-Code und da geht sowas anstandslos...
schön für Excel, aber irrelevant für Calc - OOo erhebt keinen Anspruch ein Clone von MS Office zu sein, weshalb solche Vergleiche allenfalls für einen allgemeinen Leistungsvergleich Bedeutung haben, niemals auf konkreter funktioneller Ebene.
Verständlicher gesagt:
Daraus das bestimmte Dinge in MS Office funktionieren ist nicht abzuleiten das sie in OOo auch funktionieren müssen, wie man gleichfalls nicht sagen kann das es Dinge die in MS Office nicht funktionieren auch nicht in OOo gibt.




Gruß
Stephan

Re: Range

von hawe » Fr, 08.08.2008 16:32

Hallo Winfried,

Naja, mit ner Schleife hab ichs ersatzweise gelöst - klar.
Eleganter wäre den Range in einem Rutsch zu summieren. Das ist ein Bug! Schließlich werden Bereiche wie
A1:H1,B2:B10 ja auch unterstützt - wie so dann net einzelne Zellen?
Ich portiere gerade VBA-Code und da geht sowas anstandslos...

Gruß HW
Hans W. Hofmann

Re: Range

von komma4 » Fr, 08.08.2008 14:21

Hans,

.getCellRangeByName( "B2" ) oder
.getCellRangeByName( "B2:D4" )

Mit der Methode kann nur ein zusammenhängender Bereich gewählt werden.

(und Du weisst, dass Du mit Basic auch summieren kannst:)

Code: Alles auswählen

idxSpalte = 1  ' Spalte B
idxZeile = 1  ' Zeile 2

lSumme = 0
for i = 0 to 6
   lSumme = lSumme + oCalc.Sheets(0).getCellByPosition( idxSpalte + i , idxZeile + i ).getValue()
next i

msgbox "Summe ist: " & lSumme
Ist Dir damit gedient?



edit: falsches getCellRangeByName im Code durch getCellByPosition gewechselt

Range

von hawe » Fr, 08.08.2008 10:47

Hallo zusammen,

ich habe einen Range zu bearbeiten, z.B.

Code: Alles auswählen

       oCalc = ThisComponent
	Worksheetfunction = createunoservice("com.sun.star.sheet.FunctionAccess")
	
	oRange=oCalc.Sheets(0).getCellRangeByName("B2","C3","D4","E5","F6","G7","H8")
	s = Worksheetfunction.callFunction("SUM",array(oRange))
	oRange=oCalc.Sheets(0).getCellRangeByName("B2,C3,D4,E5,F6,G7,H8")
	s = Worksheetfunction.callFunction("SUM",array(oRange))
Beide Konstruktionen scheitern.
Zuerst wird nur B2 in oRange übernommen und zweitens erzeugt eine Exception...
Weiss jemand wie es geht oder ist das Bug?

Gruß HW
Hans W. Hofmann

Nach oben