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

MIN gibt immer 0 aus

Forumthread: MIN gibt immer 0 aus

MIN gibt immer 0 aus
Steve
Hallo!
Ich habe einen Code, der ein Array in einer Schleife mit Zahlen füttert. Zu Testzwecken gebe ich das MIN, MAX und SUM des Arrays aus.
MsgBox "Minimum " & Application.WorksheetFunction.Min(arAnnualValue())
MsgBox "Maximum " & Application.WorksheetFunction.Max(arAnnualValue())
MsgBox "Summe " & Application.WorksheetFunction.Sum(arAnnualValue())
Alle Werte sind grösser 0 und bei MAX und SUM werden die richtigen Werte ausgegeben. Bei MIN steht allerdings immer eine 0 als kleinster Wert in jedem Durchlauf.
Falls noch wichtig, hier ein Codeschnipsel:
Dim arAnnualValue() As Double
For intWeek = 1 To 52
Erase arAnnualValue
ReDim arAnnualValue(40)
For intYear = 1 To 40
i = (StartRow + intWeek) + (intYear - 1) * 52
arAnnualValue(intYear) = Sheets("values").Cells(i, 1)
Next intYear
MsgBox "Minimum " & Application.WorksheetFunction.Min(arAnnualValue())
MsgBox "Maximum " & Application.WorksheetFunction.Max(arAnnualValue())
MsgBox "Summe " & Application.WorksheetFunction.Sum(arAnnualValue())
Next intWeek
Danke,
Steve
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: MIN gibt immer 0 aus
22.03.2011 19:24:45
Hajo_Zi
Hallo Stev,
Du füllst das Array ab 1, normal beginnt es bei Null, damit ist der erste 0.

AW: MIN gibt immer 0 aus
22.03.2011 21:06:47
OttoH
Hallo Steve,
versuch's mal mit ReDim arAnnualValue(1 to 40)
Gruß OttoH
AW: MIN gibt immer 0 aus
23.03.2011 09:35:28
Steve
Danke schön!
Anzeige
AW: MIN gibt immer 0 aus
23.03.2011 09:51:17
Steve
Danke schön!
;
Anzeige

Infobox / Tutorial

MIN-Funktion gibt immer 0 aus – Lösungen und Tipps


Schritt-für-Schritt-Anleitung

Um das Problem zu beheben, dass die MIN-Funktion in Excel immer 0 zurückgibt, befolge diese Schritte:

  1. Überprüfe die Array-Deklaration: Stelle sicher, dass du das Array korrekt deklarierst und füllst. Achte darauf, dass die Indizes richtig gesetzt sind.

    Dim arAnnualValue() As Double
    For intWeek = 1 To 52
       Erase arAnnualValue
       ReDim arAnnualValue(1 To 40) ' Hier beginnt das Array bei 1
       For intYear = 1 To 40
           i = (StartRow + intWeek) + (intYear - 1) * 52
           arAnnualValue(intYear) = Sheets("values").Cells(i, 1)
       Next intYear
       MsgBox "Minimum " & Application.WorksheetFunction.Min(arAnnualValue)
       MsgBox "Maximum " & Application.WorksheetFunction.Max(arAnnualValue)
       MsgBox "Summe " & Application.WorksheetFunction.Sum(arAnnualValue)
    Next intWeek
  2. Verwende die korrekte Funktion: Stelle sicher, dass du Application.WorksheetFunction.Min zur Berechnung des Minimums verwendest, um mögliche Fehler zu vermeiden.


Häufige Fehler und Lösungen

  • Fehler: Array beginnt bei 0
    Wenn du das Array mit ReDim arAnnualValue(40) deklarierst, beginnt der Index standardmäßig bei 0. Stelle sicher, dass du den Index von 1 bis 40 verwendest (ReDim arAnnualValue(1 To 40)), um zu verhindern, dass der erste Wert 0 ist.

  • Fehler: Zellen sind leer
    Überprüfe die Zellen, die du in das Array einliest. Wenn die Zellen leer sind, wird 0 als Minimum ausgegeben. Stelle sicher, dass die Zellen gültige Werte enthalten.


Alternative Methoden

Falls du weiterhin Probleme mit der MIN-Funktion hast, kannst du alternative Methoden ausprobieren:

  • Verwendung der Min-Formel in Excel: Anstatt VBA zu verwenden, kannst du die MIN-Funktion direkt in einer Zelle verwenden, um die Werte eines Bereichs zu analysieren.

    =MIN(A1:A40)
  • Verwendung von Array-Formeln: In Excel kannst du Array-Formeln verwenden, um komplexere Berechnungen durchzuführen.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die MIN-Funktion richtig zu verwenden:

  1. Einfaches Beispiel:

    Dim arValues() As Double
    arValues = Array(10, 20, 30, 5, 15)
    MsgBox "Minimum: " & Application.WorksheetFunction.Min(arValues)
  2. Beispiel mit Excel-Bereich: Angenommen, du hast Werte in den Zellen A1 bis A5:

    =MIN(A1:A5) ' Gibt den kleinsten Wert im Bereich zurück

Tipps für Profis

  • Debugging: Nutze die Debugging-Funktion in VBA, um den Inhalt deines Arrays nach jedem Durchlauf zu überprüfen. Das hilft dir, mögliche Fehlerquellen zu identifizieren.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um zu verhindern, dass das Programm bei unerwarteten Werten abstürzt.

  • VBA-Referenzen: Wenn du mit der MIN-Funktion arbeitest, stelle sicher, dass du die VBA-Referenzen auf die Application.WorksheetFunction korrekt gesetzt hast, um Konflikte zu vermeiden.


FAQ: Häufige Fragen

1. Warum gibt die MAX-Funktion auch 0 aus?
Die MAX-Funktion gibt ebenfalls 0 aus, wenn das Array Werte enthält, die als 0 interpretiert werden. Überprüfe die Werte, die du im Array speicherst.

2. Was kann ich tun, wenn die MIN-Funktion immer noch nicht funktioniert?
Stelle sicher, dass du die korrekten Indizes verwendest und die Zellen, aus denen du die Daten ziehst, gültige Werte enthalten. Nutze Debugging, um die Werte im Array zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige