Seite 1 von 1

Re: Calc: Einfügen andere Tabelle am Spaltenende

Verfasst: So, 29.08.2010 12:01
von turtle47
Hi,
Christian1432 hat geschrieben:das die eingegebenen Kriterien in eine andere Tabelle ans Spaltenende einfügt.
Da Du uns leider im Unklaren lässt von welcher Stelle aus und welcher Bereich kopiert werden soll, und ab einem gewissen Alter die
hellseherischen Fähigkeiten im Quadrat abnehmen konnte man hier nur wieder raten.

Code: Alles auswählen

Option Explicit
Sub CopyRange
Dim oDoc as Object, oSheet_Q as Object, oSheet_Z as Object, z as Object, c as Object
Dim getFirstEmptyRowInColumn as Object
Dim oRow as integer
Dim x()
	oDoc = thisComponent
	oSheet_Q = oDoc.Sheets().getByName("Tabelle1")
	oSheet_Z = oDoc.Sheets().getByName("Tabelle2")
	x = oSheet_Q.getCellRangeByName("C5:C11").getdataArray  
	c = oSheet_Z.getCellRangeByName("A1:A5000").queryEmptyCells
	getFirstEmptyRowInColumn = Split(c.RowDescriptions(0)," ")   
	oRow = getFirstEmptyRowInColumn(1)
	z = oSheet_Z.getCellRangeByName("A" & oRow & ":A" & oRow +6)
	z.setdataArray(x)
End Sub
Viel Erfolg.

Jürgen

Re: Calc: Einfügen andere Tabelle am Spaltenende

Verfasst: So, 29.08.2010 12:30
von turtle47
Christian1234 hat geschrieben:ich wollte mich vergewissern ob ich das richtig verstanden habe
Alles richtig verstanden.

Ergänzung: In "Tabelle2" Zelle "A1" muss eine Überschrift oder sonst was schon stehen!

Re: Calc: Einfügen andere Tabelle am Spaltenende

Verfasst: So, 29.08.2010 16:18
von turtle47
Christian1234 hat geschrieben:dazu makiert er noch folgendes als fehler.....

Code: Alles auswählen
z.setdataArray(x)
Ich hatte schon geahnt das dieses kommt. 8)

Dann stimmt der ausgelesene und der zu beschreibende Bereich in der Grösse nicht überein.
Die Bereiche müssen immer die gleiche Anzahl von Zeilen und Spalten haben!
turtle47 hat geschrieben: x = oSheet_Q.getCellRangeByName("C5:C11").getdataArray <-- Sind 7 Zellen
z = oSheet_Z.getCellRangeByName("A" & oRow & ":A" & oRow +6) <-- Ist die gefundene Zelle + 6 Zellen = 7 Zellen
Ok :?:

Re: Calc: Einfügen andere Tabelle am Spaltenende

Verfasst: So, 29.08.2010 16:39
von turtle47
Christian1234 hat geschrieben:könntest du mir sagen was da falsch is
Aber gerne doch.

In diesem Fall kopierst Du einen Zeilenbereich. Dann sieht das wie folgt aus:

Code: Alles auswählen

z = oSheet_Z.getCellRangeByName("A" & oRow & ":E" & oRow)

Re: Calc: Einfügen andere Tabelle am Spaltenende

Verfasst: Di, 14.09.2010 15:32
von Stephan
Immer die Exception: Arguments len differ
Naja, der Code ist falsch.
Das ist doch im Konkreten auc einfach nachzuvollziehen wenn Du Deine Code-Zeile:

Code: Alles auswählen

z.setDataArray() = afeld
mit der Methode .setDataArray() in der IDL-REferenz vergleichst:

Code: Alles auswählen

setDataArray( [in] sequence< sequence< any > >  aArray );


Ein, zumindest kurzes, Reinschauen in die IDL-Referenz lohnt sich in solchen Fällen doch eigentlich immer.

siehe:
http://api.openoffice.org/docs/common/r ... tDataArray

.SetDataArray() ist einfach keine Eigenschaft, der man einen Wert (hier also afeld) zuweisen kann, sondern eine Methode, von außen schon erkenntlich an .set

Die richtige Zeile muß lauten:

Code: Alles auswählen

z.setDataArray(afeld)
oder:

Code: Alles auswählen

z.setDataArray(afeld())


Gruß
Stephan