Seite 1 von 1

[gelöst] Array in einem Rutsch einfügen

Verfasst: Mi, 02.07.2014 17:11
von clag
Hallo Könner und Kenner,

aus einem Writer extrahiert ein Makro Strings und füllt ein zweidimensionales Array (10,50) damit
kann man den Inhalt derart in eine Calc Tabelle einfügen, das man nur die Start Zelle benennt
und der Rest aus dem Array automatisch in die benachbarten Zellen geschrieben wird?

Wenn ja, wäre ich für einen Beispiel Code sehr dankbar!

Re: Array in einem Rutsch einfügen

Verfasst: Mi, 02.07.2014 19:00
von DPunch
Servus

Prinzipiell einfach so:

Code: Alles auswählen

	oDoc = thisComponent
	oSheet = oDoc.Sheets("meinTabelle")
	
	oStartCell = oSheet.getCellRangeByName("A1")
	
	nStartCol = oStartCell.RangeAddress.StartColumn
	nStartRow = oStartCell.RangeAddress.StartRow
	
	nEndCol = nStartCol + UBound(meinArrayName,1)
	nEndRow = nStartRow + UBound(meinArrayName,2)
	
	oSheet.getCellRangeByPosition(nStartCol,nStartRow,nEndCol,nEndRow).setDataArray(meinArrayName)

Re: Array in einem Rutsch einfügen

Verfasst: Mi, 02.07.2014 20:34
von clag
Hallo DPunch,

sieht einfach super aus oder super einfach?
werde es gleich ausprobieren und dann einbauen.

besten Dank

Re: Array in einem Rutsch einfügen

Verfasst: Mi, 02.07.2014 20:41
von DPunch
Servus

Vor allem super falschrum, wie mir grad auffällt - da die erste Dimension die Zeilen und die zweite Dimension die Spalten repräsentiert, muss das eigentlich heißen

Code: Alles auswählen

	nEndCol = nStartCol + UBound(meinArrayName,2)
	nEndRow = nStartRow + UBound(meinArrayName,1)

Re: Array in einem Rutsch einfügen

Verfasst: Do, 03.07.2014 09:28
von clag
Hallo DPunch,

das einfügen als ganzes Array wirkt sich wie ein Turbo für das Makro aus, im Gegensatz zu dem Schleifen-Konstrukt vorher, string für string .... 500 mal

nochmals besten Dank