Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
240to244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
240to244
240to244
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Maximaler Wert in int-Array

Maximaler Wert in int-Array
08.04.2003 12:53:39
Karsten
Hallo Leute,

ich hätte gerne noch gewusst, wie ich den Index des grössten Wertes in einem int-Array bestimmen kann.

Beispiel:
Array(1) = 2
Array(2) = 5
Array(3) = 1

-> Es sollte "2" zurückgegeben werden!

Danke schonmal!

Euer Karsten

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Maximaler Wert in int-Array
08.04.2003 12:55:20
Michael Scheffler
Hi,

in Schleife durchgehen.

Gruß

Micha

oder WorksheetFunction
08.04.2003 14:16:37
GerdZ
Hallo Karsten und Micha,

das müßte auch in Excel 97 mit WorksheetFunction funktionieren.
Konnte das nur in Excel 2000 testen:

Dim intArray(1 To 3) As Integer
intArray(1) = 2
intArray(2) = 5
intArray(3) = 1
With Application.WorksheetFunction
    MsgBox .Match(.Max(intArray), intArray)
End With
     Code eingefügt mit Syntaxhighlighter 1.13

Gruß
Gerd
Anzeige
Hi Gerd - Dein Code ist elegant und schnell!!!
08.04.2003 14:21:59
Michael Scheffler

Re: Hi Gerd - Dein Code ist elegant und schnell!!!
08.04.2003 14:33:18
L.Vira
Aber bedenken, dass match nur bis ca. 5400 funktioniert!
Die genaue Zahl weiß ich nicht auswendig.
Korrektur
08.04.2003 15:45:20
GerdZ
Hallo,

beim Ausprobieren der Grenze habe ich festgestellt, daß im geposteten Code bei der .MATCH-Funktion noch der dritte Parameter fehlt. Hier muß noch eine 0 übergeben werden:


MsgBox .Match(.Max(intArray), intArray, 0)

In Excel 2000 funktioniert der Code bis zu einer Array-Größe von 16384.
Bei mehr Elementen kommt die Fehlermeldung "Typen unverträglich".
Ist das nicht auch die Anzahl der Zeilen in Excel 97?

Gruß
Gerd


Anzeige
Re: Korrektur
09.04.2003 08:25:45
FCH
Hi Gerd,

ne du die Zeilenanzahl bei Excel 97 betrug auch schon 65536. 16384 ist die Grenze von Excel 95.

Bei mir geht Match auch nur bis 5461 (ich glaube die Grenze von Excel4.0), wobei es aber auch daran liegen kann, dass ich was mit dem Array falsch mache. Damit habe ich noch nicht viel gearbeitet:

Sub matcharray()
Dim i As Double
Dim intArr() As Integer
For i = 1 To 65536
ReDim Preserve intArr(1 To i)
intArr(i) = i
With Application.WorksheetFunction
On Error GoTo ende
Cells(i, 2) = .Match(.Max(intArr), intArr, 0)
End With
Next i
ende:
End Sub

Eigentümlich ist, dass Match bei direktem Zugriff auf 65536 gefüllte Zellen anstandslos das richtige Ergebnis liefert.

Gruß
FCH

Anzeige

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige