vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: VBA Allgemein   |   VB-Versionen: VBA10.04.15
VBA-Funktionen #1, bestimmte Funktionen zur Array-Verwendung

Der Tipp zeigt mehrere einfache Funktionen, die bei der Verwendung von Arrays benutzt werden können.

Autor:   Dietrich HerrmannBewertung:     [ Jetzt bewerten ]Views:  8.715 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

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
' Zirka Index
' theArray: das Feld, in dem der Wert gesucht werden soll
' v: der Wert, der gesucht werden soll (zwischen zwei Werten liegend)
' Rückgabe: der \"ungefähre\" Index des Werts im Feld
Private Function caIndexOf(theArray As Variant, v As Variant) As Integer
  Dim i As Integer
  For i = 1 To UBound(theArray) - 1
    If v >= theArray(i - 1) And v < theArray(i) Then
      caIndexOf = i - 1
      Exit For
    End If
  Next 
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

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel