zellwerte in einen array lesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

zellwerte in einen array lesen

Beitrag von kannenklaus »

hallo,

ich würde gerne die zellwerte (a1, b1 und c1) von u.g. code in einen array lesen. geht das und wenn ja wie?

Code: Alles auswählen

Sub Main
Dim aktBlatt as Object, aktZelle as Object
Dim iSp as Integer, iZe as integer
Dim s as string
aktBlatt=thisComponent.CurrentController.getActiveSheet

For iSp = 0 to 2

	aktZelle=aktBlatt.getCellByPosition(iSp,0)
	s=aktZelle.string
	msgbox(s)

next

End Sub
freue mich auf eine antwort

grüße klaus
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: zellwerte in einen array lesen

Beitrag von kannenklaus »

habe nun diese lösung entwicklet, ohne zu wissen, ob sie die beste ist:

Code: Alles auswählen

Sub Main
Dim aktBlatt as Object, aktZelle as Object
Dim A as variant
Dim iSp as Integer, iZe as integer
Dim s as string
aktBlatt=thisComponent.CurrentController.getActiveSheet

For iSp = 0 to 2

	aktZelle=aktBlatt.getCellByPosition(iSp,0)
	s=aktZelle.string

	x=s+chr(13)+x

next
	A=Array(x)	
	msgbox A(0)
End Sub
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: zellwerte in einen array lesen

Beitrag von Toxitom »

Hallo Kannenklaus,

also, es gibt da diverse Methoden. Bei nur drei Werten würdfe man das einfach so machen:

Code: Alles auswählen

Sub Main
Dim aktBlatt as Object, aktZelle as Object
Dim A(2) as variant
Dim iSp as Integer, iZe as integer
Dim s as string
aktBlatt=thisComponent.CurrentController.getActiveSheet

For iSp = 0 to 2

   aktZelle=aktBlatt.getCellByPosition(iSp,0)
   A(i)=aktZelle.string

next
  
   msgbox A(0)
End Sub
Das ist die kürzeste und typische Variante.
Weisst du nicht genau, wieviel Zellen es werden, kan der Array entweder innerhalb der For-Schleife mit "Redim preserve" jeweils vergrößert werden, oder du nutzt gleich eine UNO-Variante und liest den kompleten Datenstrom aus dem Zellbereich ein (getDataArray())- da hast du dann gleich einen Array -allerings immer einen verschachtelten!.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten