Seite 1 von 1

zellwerte in einen array lesen

Verfasst: Do, 09.08.2007 15:07
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

Re: zellwerte in einen array lesen

Verfasst: Do, 09.08.2007 15:19
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

Re: zellwerte in einen array lesen

Verfasst: Fr, 10.08.2007 08:12
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