Calc: Einfügen andere Tabelle am Spaltenende

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: Calc: Einfügen andere Tabelle am Spaltenende

Re: Calc: Einfügen andere Tabelle am Spaltenende

von Stephan » Di, 14.09.2010 15:32

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

Re: Calc: Einfügen andere Tabelle am Spaltenende

von turtle47 » So, 29.08.2010 16:39

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

von turtle47 » So, 29.08.2010 16:18

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

von turtle47 » So, 29.08.2010 12:30

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

von turtle47 » So, 29.08.2010 12:01

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

Nach oben