Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Maximum aus Array

Betrifft: Maximum aus Array von: Bernd
Geschrieben am: 15.08.2008 11:32:30

Hallo Forum,

ich habe ein zweidimensionales Array steigung(i,j), nun möchte ich wissen, an welcher Stelle im Array in Zeile i der größte Wert steht. Den Wert selbst brauche ich nicht, ich möchte nur wissen in welcher Spalte das Maximum einer Zeile steht.

Vielen Dank!

  

Betrifft: AW: Maximum aus Array von: Rudi Maintaire
Geschrieben am: 15.08.2008 11:47:25

Hallo,
da musst du mit ner Schleife durch.
Bsp:

Sub tt()
Dim Steigung
Steigung = Range("A1:F40")
MsgBox ZMax(Steigung)
End Sub



Function ZMax(myArray)
  Dim i As Long, j As Long, vntMax
  For i = LBound(myArray) To UBound(myArray)
    For j = LBound(myArray, 2) To UBound(myArray, 2)
      If myArray(i, j) > vntMax Then
        ZMax = i
        vntMax = myArray(i, j)
      End If
    Next
  Next
End Function


Gruß
Rudi


  

Betrifft: AW: Maximum aus Array von: Daniel
Geschrieben am: 15.08.2008 11:47:51

Hi

du kannst dir mit "worksheetfunction.max(arr)" das Maximum deines Arrays ermitteln lassen.

jetzt musst du zwei schleifen (Zeilen und Spalten) das Array druchlaufen und dir den Spaltenzähler merken, wenn der Wert mit dem Maximum übereinstimmt.

Gruß, Daniel


  

Betrifft: AW: Maximum aus Array von: Tino
Geschrieben am: 15.08.2008 12:03:32

Hallo,
vielleicht gehts auch einfachen, aber hier mal ein Beispiel.

Dim strAr(10, 0) As Double
Dim Zeile As Double, ArIndex As Long
Dim A As Long
    
    For A = 0 To 10
        'Zufallszahl schreiben
        strAr(A, 0) = [=ROUND(RAND()*100,2)]
    Next A

    For A = LBound(strAr) To UBound(strAr)
     If strAr(A, 0) > Zeile Then Zeile = strAr(A, 0): ArIndex = A
    Next A
MsgBox ArIndex



Gruß Tino


  

Betrifft: AW: Maximum aus Array von: Tino
Geschrieben am: 15.08.2008 12:08:56

Hallo,
besser ist es wahrscheinlich den ersten Wert aus der Matrix als Ausgangspunkt zu nehmen.

Dim strAr(10, 0) As Double
Dim Zeile As Double, ArIndex As Long
Dim A As Long
    
    For A = 0 To 10
        'Zufallszahl schreiben
        strAr(A, 0) = [=ROUND(RAND()*100,2)]
    Next A
Zeile = strAr(0, 0)
    For A = LBound(strAr) To UBound(strAr)
     If strAr(A, 0) > Zeile Then Zeile = strAr(A, 0): ArIndex = A
    Next A
MsgBox ArIndex



Gruß Tino


 

Beiträge aus den Excel-Beispielen zum Thema "Maximum aus Array"