In diesem Beitrag zeige ich verschiedene Funktionen zur Verwendung bei der Nutzung von Arrays. Nachfolgende Funktionen sind gewissermaßen Bestandteil von auf diesen Tipp folgenden weiteren Tipps. Ich zeige sie sozusagen im Voraus. Die Funktionen sind ziemlich selbsterklärend bei der Beschreibeung ihrer Parameter.' Nachbildung der Verweisfunktion aus Excel ' Suchkriterium: der Wert, der in einem Feld gesucht wird ' Suchvektor: das Feld, in dem der Wert gesucht wird ' Ergebnisvektor: das Feld, in dem die positionsbezogenen Rückgabewerte ' enthalten sind ' Rückgabe: der Wert, der aus dem Ergebnisfeld ermittelt wurde Public Function VerweisFKT(Suchkriterium As Variant, _ Suchvektor As Variant, _ Ergebnisvektor As Variant) As Variant VerweisFKT = Ergebnisvektor(caIndexOf(Suchvektor, Suchkriterium)) End Function
' Suchkriterium: der Wert, nach dem summiert werden soll ' Bereich: das Feld, in dem der Wert, eventuell mehrfach) enthalten ist ' SummeBereich: das Feld mit den zu summierenden Werten, ' positionsbezogen zu Bereich ' Rückgabe: die ermittelte Summe Public Function SummeWenn(Suchkriterium As Variant, _ Bereich As Variant, _ SummeBereich As Variant) As Variant Dim i As Integer, j As Integer, summe As Single For i = 0 To UBound(Bereich) - 1 j = indexOfArr(Bereich, Suchkriterium, j + 1) If j <= 0 Then Exit For summe = summe + SummeBereich(j) Next SummeWenn = summe End Function ' Nachbildung der ZählenWenn-Funktion aus Excel ' Suchkriterium: der Wert, der gezählt werden soll ' Suchvektor: das Feld, in dem der Wert gesucht werden soll ' Rückgabe: die ermittelte Anzahl Public Function ZaehlenWenn(Suchkriterium As Variant, _ Suchvektor As Variant) As Variant Dim i As Integer, j As Integer, zahl As Integer For i = 0 To UBound(Suchvektor) - 1 j = indexOfArr(Suchvektor, Suchkriterium, j + 1) If j <= 0 Then Exit For zahl = zahl + 1 Next ZaehlenWenn = zahl End Function ' Ermitteln des Index eines Feldelements ' theArray: das Feld ' v: der Wert, dessen Position im Feld gesucht wird ' begI: Feldindex, bei dem mit der Suche begonnen werden soll ' Rückgabe: der Index des Wertes im Feld Public Function indexOfArr(theArray As Variant, v As Variant, _ Optional begI As Integer) As Integer Dim i As Integer indexOfArr = -1 If IsMissing(begI) Then begI = 0 For i = begI To UBound(theArray) - 1 If theArray(i) = v Then indexOfArr = i Exit For End If Next i End Function ' Prüfen, ob ein Wert in einem Array enthalten ist ' theArray: das Feld in dem gesucht wird ' valueToFind: der zu suchende Wert ' comp: Vergleichsoperator (binary, text) Public Function IsInArray(theArray As Variant, valueToFind As Variant, _ Optional comp As Integer = 1) As Boolean IsInArray = (UBound(Filter(theArray, valueToFind, , comp)) > -1) End Function Dieser Tipp wurde bereits 8.715 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 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. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |