Hallo Horst, On Mon, 22 Feb 2016 12:30:19 +0100 Horst wrote: > Hallo, > > ich habe mir folgende Function gebastelt: > > function isInArray(afeld as variant,stext as variant) as integer '*ist > stext in afeld? > 'jetzt kann das Feld aber ein- oder mehrdimensional vorliegen. Wie > kann ich das prüfen? > ibound2=ubound(afeld(),2) gibt eine Fehlermeldung bei einem > eindimensionalen Feld > > Gibt es so eine Funktion irgendwo vordefiniert? > Ich kenne keine Funktion die so etwas liefert. Du kannst aber mit IsArray prüfen ob dein Variant ein Array ist. Dann machst du 2 verschachtelte Abfragen: If IsArray(afeld) Then If IsArray( afeld( LBound(afeld) ) Then ' zweidimensional Else ' eindimensional End If Else ' Abbruch: afeld kein Array End If
Wenn du wissen willst wie viele Dimensionen ein Array hat brauchst du eine kleine rekursive Funktion: Function NumberDims(B as Variant, optional DontUseThisVar as boolean) as Integer If IsMissing(DontUseThisVar) Then NumberDims = 0 End If If IsArray(B) Then NumberDims = NumberDims(B(LBound(B)), DontUseThisVar) + 1 End If End Function Sub TestNumberOfDimensions A= Array(Array("A1","B1"),Array("A2","B2")) B= Array("Text A", "Text B") C= "Just a string." Print "A has " + NumberDims(A) + " dimensions" Print "B has " + NumberDims(B) + " dimensions" Print "C has " + NumberDims(C) + " dimensions" End Sub Grüße Jochen
signature.asc
Description: OpenPGP digital signature