Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Max-Wert in einem Array (VBA)

Max-Wert in einem Array (VBA)
12.09.2008 14:30:38
David
Hallo.
wenn ich in einem Makro ein Array definiert habe
Dim zaehler_n(n) as Byte
und ich habe anschließend ca. 10 Werte in diesem Array.
Wenn ich jetzt davon den höchsten Wert haben will, muss ich dann eine Schleife drüberlaufen lassen oder gibt's da auch einen "Einzeiler"?
Danke
Gruß
David
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Max-Wert in einem Array (VBA)
12.09.2008 14:38:00
Rudi
Hallo,
MsgBox Application.Max(zaehler_n)
Gruß
Rudi
Danke. owT
12.09.2008 14:50:00
David
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Max-Wert in einem Array mit VBA bestimmen


Schritt-für-Schritt-Anleitung

Um den Maximalwert in einem Array mit VBA zu bestimmen, kannst du die Funktion Application.Max verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Array definieren: Erstelle ein Array, um die Werte zu speichern.

    Dim zaehler_n(10) As Byte
  2. Werte hinzufügen: Füge Werte in das Array ein. Zum Beispiel:

    zaehler_n(0) = 5
    zaehler_n(1) = 10
    zaehler_n(2) = 3
    zaehler_n(3) = 8
    zaehler_n(4) = 12
    zaehler_n(5) = 7
    zaehler_n(6) = 6
    zaehler_n(7) = 15
    zaehler_n(8) = 9
    zaehler_n(9) = 11
  3. Maximalwert ermitteln: Nutze Application.Max, um den maximalen Wert zu finden.

    MsgBox Application.Max(zaehler_n)
  4. Makro ausführen: Führe das Makro aus, um das Ergebnis anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Typkonflikt bei der Verwendung von Application.Max"

    • Lösung: Stelle sicher, dass alle Elemente im Array den gleichen Datentyp haben. Wenn du ein Byte-Array verwendest, achte darauf, dass die Werte im Bereich von 0 bis 255 liegen.
  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Überprüfe die Dimensionierung des Arrays. Achte darauf, dass du das Array korrekt initialisiert hast und dass du innerhalb der Grenzen arbeitest.

Alternative Methoden

Neben der Verwendung von Application.Max gibt es auch andere Methoden, um den maximalen Wert in einem Array zu finden:

  1. Schleife verwenden: Du kannst eine Schleife verwenden, um den maximalen Wert manuell zu bestimmen.

    Dim maxWert As Byte
    maxWert = zaehler_n(0)
    For i = 1 To UBound(zaehler_n)
       If zaehler_n(i) > maxWert Then
           maxWert = zaehler_n(i)
       End If
    Next i
    MsgBox maxWert
  2. VBA-Funktionen: Du kannst auch eigene Funktionen erstellen, die den maximalen Wert zurückgeben.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie du den Maximalwert in einem Array finden kannst:

Sub MaxWertBeispiel()
    Dim zaehler_n(9) As Byte
    Dim i As Integer

    ' Werte zuweisen
    For i = 0 To 9
        zaehler_n(i) = Int(Rnd() * 100) ' Zufallswerte zwischen 0 und 99
    Next i

    ' Maximalwert ermitteln
    MsgBox "Der maximale Wert im Array ist: " & Application.Max(zaehler_n)
End Sub

In diesem Beispiel werden zufällige Werte in das Array eingefügt, und der maximale Wert wird anschließend angezeigt.


Tipps für Profis

  • Speichere Array-Größe: Wenn du die maximale Größe eines Arrays benötigst, kannst du UBound(zaehler_n) verwenden, um die höchste Indexnummer zu ermitteln.

  • Dynamische Arrays: Wenn du die Größe des Arrays zur Laufzeit ändern möchtest, kannst du ein dynamisches Array verwenden und mit ReDim arbeiten.

  • Verwendung von WorksheetFunction.Max: Eine weitere Methode zur Ermittlung des Maximalwerts ist die Verwendung der WorksheetFunction-Objekte, die eine ähnliche Funktionalität wie Application.Max bietet.


FAQ: Häufige Fragen

1. Wie kann ich den minimalen Wert in einem Array ermitteln? Verwende Application.Min auf ähnliche Weise wie bei Application.Max.

2. Kann ich ein mehrdimensionales Array verwenden? Ja, Application.Max funktioniert auch mit mehrdimensionalen Arrays. Stelle sicher, dass du die richtigen Indizes verwendest.

3. Wie kann ich die maximale Größe eines Arrays in VBA bestimmen? Du kannst die maximale Größe eines Arrays mit der Funktion UBound ermitteln, die die größte Indexnummer des Arrays zurückgibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige