Zellbereich auslesen
Moderator: Moderatoren
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Zellbereich auslesen
Hallo,
ich möchte einen Zellbereich (z.B. A1:A4) in eine indizierte Variable z.B. Inhalt (4) einlesen.
Ich kenne dafür natürlich die Möglichkeit, die Zellen einzeln auszulesen und in die Variable zu übertragen.
Es müsste aber doch auch eine Möglichkeit geben, den ganzen Bereich in einem Rutsch rüber zu bringen.
Danke für Antwort
Friedhelm
ich möchte einen Zellbereich (z.B. A1:A4) in eine indizierte Variable z.B. Inhalt (4) einlesen.
Ich kenne dafür natürlich die Möglichkeit, die Zellen einzeln auszulesen und in die Variable zu übertragen.
Es müsste aber doch auch eine Möglichkeit geben, den ganzen Bereich in einem Rutsch rüber zu bringen.
Danke für Antwort
Friedhelm
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Zellbereich auslesen
Wenn Du mit Inhalt(4)*** eine Arrayvariable meinst:
getDataArray() gibt ein Array von Arrays zurück!
War dies das Gesuchte, Friedhelm? Wenn ja, dann findest Du ein Beispiel für get-/setDataArray() bspw. im Code meiner Extension OOoDIL - DokumentInfoListe
Hilft das weiter?
***
A1 bis A4 sind vier Zellen, eine OOo StarBasic Dimensionierung beginnt bei 0 (default), also wäre DIM Inhalt(3) ausreichend
Code: Alles auswählen
aInhalt = _
ThisComponent.Sheets().getByName( "Tabelle2" ).getCellRangeByName( "A1:A4" ).getDataArray()
For i = LBound( aInhalt ) To UBound( aInhalt )
xray aInhalt( i )
Next i
War dies das Gesuchte, Friedhelm? Wenn ja, dann findest Du ein Beispiel für get-/setDataArray() bspw. im Code meiner Extension OOoDIL - DokumentInfoListe
Hilft das weiter?
***
A1 bis A4 sind vier Zellen, eine OOo StarBasic Dimensionierung beginnt bei 0 (default), also wäre DIM Inhalt(3) ausreichend
Zuletzt geändert von komma4 am Mo, 17.11.2008 19:04, insgesamt 1-mal geändert.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Zellbereich auslesen
Danke erstmal.
So ganz ist mir allerdings noch nicht geholfen (das Brett vor meinem Kopf ist deutsche Eiche!):
Ja, ich meine mit Inhalt(4) natürlich eine Array-Variable
Bei der Ausführung deines Codes bekomme ich bei der Zeile: "For i = LBound( aInhalte ) To UBound( aInhalte )" einen Laufzeitfehler: Objektvariable nicht belegt.
Kann ich davon ausgehen, dass in deinem Code der Inhalt der Zellen A1 bis A4 dann in der Array-Variable "aInhalte(1)" bis "aInhalte(4)" gespeichert ist?
Gruß, Friedhelm
So ganz ist mir allerdings noch nicht geholfen (das Brett vor meinem Kopf ist deutsche Eiche!):
Ja, ich meine mit Inhalt(4) natürlich eine Array-Variable
Bei der Ausführung deines Codes bekomme ich bei der Zeile: "For i = LBound( aInhalte ) To UBound( aInhalte )" einen Laufzeitfehler: Objektvariable nicht belegt.
Kann ich davon ausgehen, dass in deinem Code der Inhalt der Zellen A1 bis A4 dann in der Array-Variable "aInhalte(1)" bis "aInhalte(4)" gespeichert ist?
Gruß, Friedhelm
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Zellbereich auslesen
Da war ein Tippfehler im Code... der sowieso nur läuft, wenn Du hast.
Arrays sind null-basiert aInhalt(0) bis aInhalt(3).
Sieh Dir den genannten Beispielcode an.
Arrays sind null-basiert aInhalt(0) bis aInhalt(3).
Sieh Dir den genannten Beispielcode an.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Zellbereich auslesen
Wir kommen uns langsam näher:
jetzt läufts bis "xray aInhalt( i )"
Dann meldet OO eine nicht definierte Sub- oder Function-Prozedur.
Ich muss gestehen, mir sagt xray auch nichts.
Friedhelm
jetzt läufts bis "xray aInhalt( i )"
Dann meldet OO eine nicht definierte Sub- oder Function-Prozedur.
Ich muss gestehen, mir sagt xray auch nichts.
Friedhelm
Re: Zellbereich auslesen
Hallo Friedhelm,
mitholt man sich automatisch ein mehrdimensionales Array,
auch wenn man nur eine Spalte einliest!
Dieses muss man zuerst auf die erste Dimension (0) "runterschrauben".
Das Thema wurde hier schon einmal behandelt.
Viel Erfolg.
Jürgen
mit
Code: Alles auswählen
getDataArray()
auch wenn man nur eine Spalte einliest!
Dieses muss man zuerst auf die erste Dimension (0) "runterschrauben".
Code: Alles auswählen
Sub Array_auslesen()
x = ThisComponent.Sheets().getByIndex(0).getCellRangeByName("A1:A4").getDataArray()
for i = 0 to UBound(x)
Daten = x(i)(0)' 0 = erste Dimension
msgbox daten
next i
End Sub
Viel Erfolg.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Zellbereich auslesen
Ohne XRay kommst Du nicht weit, Friedhelm.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Zellbereich auslesen
Hallo,
jetzt hab' ich es begriffen und es funktioniert auch.
Danke,
Friedhelm
jetzt hab' ich es begriffen und es funktioniert auch.
Danke,
Friedhelm
Re: Zellbereich auslesen
Hi Friedhelm,
Was hast Du jetzt begriffen?Hömmelmann hat geschrieben:jetzt hab' ich es begriffen und es funktioniert auch.
oderkomma4 hat geschrieben:Ohne XRay kommst Du nicht weit, Friedhelm.
Jürgenturtle47 hat geschrieben:mit
Code: Alles auswählen
getDataArray()holt man sich automatisch ein mehrdimensionales Array,
auch wenn man nur eine Spalte einliest!
Dieses muss man zuerst auf die erste Dimension (0) "runterschrauben".
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem