ich möchte aus 15 Zeilen die größten 3 Zahlen sowie ihre entsprechenden Zeilen herausfinden.Hierfür nutze ich zuerst die Large-Funktion und dann die Find-Funktion.
Bei den Zahlen handelt es sich teilweise um ganze Zahlen, teilweise um bis zu 20 stellige Dezimalzahlen (z.B. 0,000442477876106073), welche in der Excel-Zelle als Dezimalzahl angegeben wird, in VBA jedoch automatisch im wissenschaftlichen Format (4,42477876106073E-04) gespeichert wird.
Mit der Find()-Funktion sucht VBA nach der VBA-Variablen (wissenschaftliches Format). Excel erkennt hier nicht dass die Dezimalzahl gleich der wissenschaftlichen Zahl ist.
Sub1()
Dim Top1 as Double
Dim ZTop1 as Integer
Dim Top2 as Double
Dim ZTop2 as Integer
Dim Top3 as Double
Dim ZTop3 as Integer
'Top1 = 1 'aus Zelle ausgelesen
'Top2 = 0,5 'aus Zelle ausgelesen
'Top3 = 0,000442477876106073 'aus Zelle ausgelesen
Top1 = Application.WorksheetFunction.Large(Sheets("Daten").Range(Sheets("Daten").Cells(11, 7), Sheets("Daten").Cells(25, 7)), 1)
ZTop1 = Sheets("Daten").Range(Sheets("Daten"). _
Cells(11, 7), Sheets("Daten").Cells(25, 7)).Find(Top1, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlNext).Row
Top2 = Application.WorksheetFunction.Large(Sheets("Daten").Range(Sheets("Daten").Cells(11, 7), Sheets("Daten").Cells(25, 7)), 2)
ZTop2 = Sheets("Daten").Range(Sheets("Daten"). _
Cells(11, 7), Sheets("Daten").Cells(25, 7)).Find(Top2, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlNext).Row
Top3 = Application.WorksheetFunction.Large(Sheets("Daten").Range(Sheets("Daten").Cells(11, 7), Sheets("Daten").Cells(25, 7)), 3)
ZTop3 = Sheets("Daten").Range(Sheets("Daten"). _
Cells(11, 7), Sheets("Daten").Cells(25, 7)).Find(Top3, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlNext).Row
End Sub
Vielen Dank.