Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Large Funktion in VBA ohne Duplikate
#1
Hallo, 

Ich versuche gerade mit einem Makro, die fünf grössten Zahlen in meiner Datei zu finden, jedoch kommen mit dem Makro Duplikate in meinem Resultat vor, die ich gerne vermeiden würde. 

Beispielhaft: Wenn ich 3 zahlen hab (1,1,2) würde mir das Makro als Secondscore 1 als Output geben und nicht 2, wie kann ich das Problem umgehen? 


Code:
public Sub ColorMax()
Dim maxscore As Double
Dim secondscore As Double
Dim thirdscore As Double
Dim fourthscore As Double
Dim fifthscore As Double
Dim MyRange As Range

Set MyRange = Range("A1").CurrentRegion

maxscore = WorksheetFunction.Max(MyRange)
secondscore = WorksheetFunction.Large(MyRange, 2)
thirdscore = WorksheetFunction.Large(MyRange, 3)
fourthscore = WorksheetFunction.Large(MyRange, 4)
fifthscore = WorksheetFunction.Large(MyRange, 5)

Cells(2, 5).Value = maxscore
Cells(2, 5).Offset(1, 0).Value = secondscore
Cells(2, 5).Offset(2, 0).Value = thirdscore
Cells(2, 5).Offset(3, 0).Value = fourthscore
Cells(2, 5).Offset(4, 0).Value = fifthscore

End Sub

Liebe Grüße.


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 25,86 KB / Downloads: 4)
Antworten Top
#2
Code:
Sub M_snb()
  sn = Columns(1).SpecialCells(2, 1)

  With CreateObject("scripting.dictionary")
    For Each it In sn
      x0 = .Item(it)
    Next

    For j = 1 To 5
      Cells(j + 1, 8) = Application.Large(.keys, j)
    Next
  End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste