Код, който извлича трите най-големи числа от масив

1 одобрение 0 неодобрения
попитан 2015 декември 16 в VBA от vbafreak

Здравейте, бг-екселковци!

Трябва ми код, който намира трите най-големи числа от масив. Масивът се попълва от клетки А1:А100 в Ексел. Опитах следното, но ми дава грешка: subscript out of range:

Sub arr()
Dim arr() As Variant
arr() = Range("A1:A100").Value
For i = LBound(arr) to Ubound(arr)
MsgBox "The biggest number is " & Application.WorksheetFunction.Max(arr(i))
Next
End Sub 

Как мога да изкарам най-голямата стойност и също как да изкарам следващите две по големина?

Много ми е важно, моля, помогнете, имам срок от шефа да приключа с проекта до края на седмицата...

1 отговор

1 одобрение 0 неодобрения
отговорени 2015 декември 16 от Ian Gillan ученик (91 точки)
избран 2015 декември 28 от BgExcelAdmin
 
Най-добър отговор

Здравей,

Aко ти трябват трите най-големи числа, използвай следния код:

Sub FindTheThreeBiggestNumbers()
 

Dim arr() As Variant
arr() = Range("A1:A100").Value


'use worksheet function .max method to find the biggest number 

MsgBox "The biggest number is " & Application.WorksheetFunction.Max(arr())

 

'use worksheet function .large method to find other big numbers

MsgBox "The second biggest number is " & Application.WorksheetFunction.Large(arr(), 2)
MsgBox "The third biggest number is " & Application.WorksheetFunction.Large(arr(), 3)
 

End Sub

1 коментар

коментиран 2015 декември 16 от Ritchie Blackmore
Не съм особено съгласен с Иън,
мисля, че може да се реализира много по-лесно
Добре дошли в българския форум за Ексел и Майкрософт офис! Тук можете да питате хора със знания и опит, както и да споделите знанията и опита си с другите.
...