Mit der hier vorgestellten Funktion CheckArrayDim wird eine beliebige Variable (Übergabe) auf DatenTyp, Dimensionszahl u. FeldArrayIndex geprüft. Dies ist ein einfache Beispielfunktion, die auf keine API-Funktion zurückgreift. ' Diese Funktion analysiert die in [vWert] übergebene Variable. ' ' vWert : beliebiger VariablenTyp ' ' Rückgabe ' iTyp : VariablenTyp ' iDim : Anzahl der Dimensionen ' iIndex() : IntegerArray->ReDim in Funktion ' ' ArrayFeldIndices ' iIndex(x, 0) : unterer Index, x.Dimension ' iIndex(x, 1) : oberer Index, x.Dimension ' Function CheckArrayDim(ByVal vWert As Variant, _ iTyp As Integer, _ iDim As Integer, _ iIndex() As Integer) As Long Dim D As Integer Dim I As Integer Dim U As Integer Dim nErr As Long Dim Ret As Long ' iTyp : ' 0 : Empty ' Variant ' 1 ' 2 : Integer ' 3 : Long ' 4 : Single ' 5 : Double ' 8 : String ' 11 : Boolean ' 12 : Variant ' <Array>: +8192 ' vbArray ' 8194 : Integer ' 8195 : Long ' 8195 = 3 + 8192 ' 8196 : Single ' 8197 : Double ' 8200 : String ' 8203 : Boolean ' 8204 : Variant iTyp = VarType(vWert) If iTyp >= vbArray Then ' ist Array On Error Resume Next ' Dimensionen bestimmen Do D = D + 1 U = UBound(vWert, D) With Err If .Number <> 0 Then ' Err: 9 nErr = .Number .Number = 0 D = D - 1 ' sub 1, weil Err End If End With Loop While nErr = 0 iDim = D On Error GoTo Err_CAD Else ' kein Array End If ' ArrayFeldIndices ReDim iIndex(iDim, 1) D = 0 For I = 1 To iDim D = D + 1 iIndex(I, 0) = LBound(vWert, D) ' unterer Index iIndex(I, 1) = UBound(vWert, D) ' oberer Index Next I ' Ret = 0 , o.k. ' <> 0 , Fehler Exit_CAD: CheckArrayDim = Ret Exit Function Err_CAD: With Err Ret = .Number .Clear End With Resume Exit_CAD End Function Testaufruf für CheckArrayDim Function CheckVariable() As Long Dim A As Long Dim AA(10) As Long Dim AAA(10, 5) As Long Dim AAAA(10, 5, 2) As Long Dim I As Integer Dim vMsg As Variant Dim iTyp As Integer Dim iDim As Integer Dim iIndex() As Integer Dim Ret As Long ' z.B.: Ret = CheckArrayDim(AAA, iTyp, iDim, iIndex) MsgBox "Ret : " & Ret & vbCr _ & "Typ : " & iTyp & vbCr _ & "Dim : " & iDim, vbInformation, "CheckArrayDim" & Space(10) ' AAA AA A ' Ret : 0 0 0 ' Typ : 8195 8195 3 ' Dim : 2 1 0 vMsg = "unterer -" & Space(2) & "oberer Index:" & vbCr For I = 1 To iDim vMsg = vMsg & iIndex(I, 0) & Space(15) & iIndex(I, 1) & vbCr Next I MsgBox vMsg, vbInformation, "ArrayFeldIndices" ' AAA ' unterer - oberer Index: ' 0 10 ' 0 5 End Function Dieser Tipp wurde bereits 9.637 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats sevGraph (VB/VBA) ![]() Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |