Seite 1 von 1

Calc: Anzahl Felder eines Arrays

Verfasst: Mo, 10.10.2011 16:54
von Shirkan
Liebe Leute,
ich brauche noch mal eine kleine Hilfestellung. Ich versuche die Anzahl der Zeilen und Spalten eines zweidimensionalen Arrays heraus zu bekommen, um die Anzahl der Felder des übergebenen Bereiches zu bestimmen, erhalte in der zweiten Printanweisung des nachfolgenden Codes aber jedes mal eine Fehlermeldung. "Index außerhalb des definierten Bereiches". Kann mir jemand einen Tipp geben?

Code: Alles auswählen

Sub Test
    ArrayDimension("M1", "A1:C3")
End Sub

Sub ArrayDimension (strSheetName As String, strBereich As String)

Dim oDoc As Object
Dim oBereich As Object
Dim aDat As Variant

   oDoc = ThisComponent
   oBereich = oDoc.Sheets(strSheetName).getCellRangeByName(strBereich)
   aDat  = oBereich.getDataArray()
   
   Print "Anzahl Zeilen:= " +  UBound(aDat,1)
   Print "Anzahl Spalten:= " +  UBound(aDat,2)   

End Sub
Danke, Gruß Markus

Re: Calc: Anzahl Felder eines Arrays

Verfasst: Mo, 10.10.2011 17:35
von komma4

Code: Alles auswählen

   Print "Bereich hat " & UBound( adat() ) + 1 & " Zeilen"
   
   aZeile = adat(0)
   Print "Bereich hat " & UBound( aZeile() ) + 1 & " Spalten"

Zum .getDataArray() und .setDataArray() habe ich (ein) Beispiel(e) hier im Forum (=>Googlesuche: getDataArray komma4 site:de.openoffice.info) - oder auch in meiner Extension OOoDIL

Ansonsten empfehle ich Dir -wie allen Anfängern-

Re: Calc: Anzahl Felder eines Arrays

Verfasst: Mo, 10.10.2011 18:20
von Shirkan
Hllo Winfried,
vielen Dank für Deine Hilfe.
Gruß Markus

Re: Calc: Anzahl Felder eines Arrays

Verfasst: Mo, 10.10.2011 18:39
von F3K Total
Hallo,
habe eben auch versucht die Lösung zu finden, war erfolreich und kann Euch mitteilen, dass ihr Zeilen und Spalten vertauscht habt.
Versucht mal den Bereich "A1:F3"

Gruß R

Re: Calc: Anzahl Felder eines Arrays

Verfasst: Mo, 10.10.2011 18:45
von komma4
F3K Total hat geschrieben:dass ihr Zeilen und Spalten vertauscht habt
Ups - wusste doch, dass zuerst Zeilen kommen, dann Spalten :D

Werde das im Code oben ändern, damit nicht einer beim Nachlesen reinfällt.

Danke!