Array Klasse Funktion/Sub Vorschläge
15.12.2017 22:39:48
Peter(silie)
ich möchte mir eine Array Klasse erstellen und möchte euch
desshalb fragen welche Funktionen o.ä. ihr braucht.
Ich bin mir bis Dato selbst nicht ganz im klaren was alles brauchbar ist
und bitte daher um: Ideen/ Wünsche/ Vorschläge
Versionen werde ich im Forum hochladen falls erwünscht oder gewollt.
Hier mal meine ersten 3 Sachen.
(DimensionCount() As Long soll als nächstes kommen
gibt die Anzahl der Dimensionen zurück)
ValidValue ist noch nicht fertig!
Option Explicit
Public Function IsArray_Truly(ByRef Input_ As Variant) As Boolean
On Error Resume Next
If Not IsArray(Input_) Then Exit Function
Dim i As Long
i = UBound(Input_)
IsArray_Truly = Err.Number = 0
End Function
Public Function IsTwoDimensional(ByRef Input_ As Variant) As Boolean
On Error Resume Next
If IsArray_Truly(Input_) Then
Dim i As Long
i = UBound(Input_, 1)
IsTwoDimensional = Err.Number = 0
End If
End Function
Public Function ReturnColumn(ByRef Input_ As Variant, ByVal Column As Long, _
Optional ByVal IgnoreEmptyValues As Boolean = True) As Variant
If IsArray_Truly(Input_) And IsTwoDimensional(Input_) Then
Dim i As Long, n As Long
Dim tmp() As Variant
For i = LBound(Input_) To UBound(Input_)
If ValidValue(Input_(i, Column), IgnoreEmptyValues) Then
ReDim Preserve tmp(n)
tmp(n) = Input_(i, Column)
n = n + 1
End If
Next i
ReturnColumn = tmp
Erase tmp
End If
End Function
Private Function ValidValue(ByVal Input_ As Variant, IgnoreEmpty As Boolean) As Boolean
Select Case VarType(Input_)
Case vbString
If IgnoreEmpty Then
ValidValue = True 'Not Input_ = vbNullString
Else
ValidValue = Not Input_ = vbNullString
End If
Case vbLong
ValidValue = True
Case vbInteger
ValidValue = True
Case vbSingle
ValidValue = True
Case vbDouble
ValidValue = True
Case vbCurrency
ValidValue = True
Case vbDate
ValidValue = True
Case vbBoolean
ValidValue = True 'Who would ever do a Bool()!?
Case vbVariant
ValidValue = True
Case vbDecimal
ValidValue = True
Case vbByte
ValidValue = True
Case Else: ValidValue = False
End Select
End Function