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

Max-Wert im Array finden

Forumthread: Max-Wert im Array finden

Max-Wert im Array finden
01.06.2003 13:48:27
Mischa Richter
hi, gibts ne schnelle Lösung, in einem Array den größten Wert zu finden - oder geht es nur über "alle einlesen und größten finden"?
Das array beinhaltet numerische Werte.
Danke, Mischa

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Max-Wert im Array finden
01.06.2003 17:15:33
L.Vira

Option Explicit
Option Base 1
Sub arraytest()
Dim x As Integer, arr(1 To 100) As Double
For x = 1 To 100
Randomize
arr(x) = Rnd * 99 + 1
Next
MsgBox WorksheetFunction.Max(arr)
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Max-Wert im Array finden


Schritt-für-Schritt-Anleitung

Um den maximalen Wert in einem Array mithilfe von VBA zu finden, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne Excel und den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Menü auf Einfügen > Modul.
  3. Füge den VBA-Code ein:

    • Verwende den folgenden Code, um den maximalen Wert zu bestimmen:
    Option Explicit
    Option Base 1
    
    Sub arraytest()
       Dim x As Integer, arr(1 To 100) As Double
       For x = 1 To 100
           Randomize
           arr(x) = Rnd * 99 + 1
       Next
       MsgBox WorksheetFunction.Max(arr)
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle arraytest und klicke auf Ausführen.
  5. Ergebnisse ansehen:

    • Eine Meldungsbox zeigt dir den maximalen Wert im Array an.

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass du die Variablen korrekt deklariert hast. Überprüfe, ob Option Explicit am Anfang steht.
  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Achte darauf, dass die Array-Größe korrekt definiert ist. In diesem Beispiel ist das Array auf 100 festgelegt.

Alternative Methoden

Wenn du die Funktion WorksheetFunction.Max nicht verwenden möchtest, kannst du den maximalen Wert auch manuell ermitteln:

Function MaxOfArray(arr() As Double) As Double
    Dim maxVal As Double
    Dim i As Integer

    maxVal = arr(1)
    For i = 2 To UBound(arr)
        If arr(i) > maxVal Then
            maxVal = arr(i)
        End If
    Next i
    MaxOfArray = maxVal
End Function

Verwende dann diese Funktion in deinem Makro, um den maximalen Wert zu finden.


Praktische Beispiele

Wenn du den maximalen Wert in einem Array mit festen Werten bestimmen möchtest, könntest du einen Code wie diesen verwenden:

Sub FindMaxValue()
    Dim myArray() As Double
    myArray = Array(5, 10, 15, 20, 25)
    MsgBox MaxOfArray(myArray)
End Sub

Hier wird der maximale Wert im Array myArray ermittelt.


Tipps für Profis

  • Leistungsoptimierung: Bei großen Arrays kann die Verwendung von For Each anstelle von For die Leistung verbessern.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während der Ausführung zu managen.

  • VBA-Funktionen nutzen: Nutze die integrierten Excel-Funktionen wie Application.WorksheetFunction.Max für einfache Berechnungen, anstatt alles manuell zu codieren.


FAQ: Häufige Fragen

1. Wie finde ich den maximalen Wert in einem mehrdimensionalen Array?
Du kannst eine Schleife verwenden, um durch jedes Element des Arrays zu iterieren und den maximalen Wert zu ermitteln.

2. Gibt es eine Excel-Funktion, die das für mich erledigt?
Ja, du kannst MAX in einer Excel-Formel verwenden, um den maximalen Wert aus einem Zellbereich zu ermitteln, aber für Arrays in VBA ist der oben beschriebene Ansatz notwendig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige