範囲内の1,2,3,4番目の最高値を見つけるはずの以下のコードがあります。Excel VBA - 範囲内の最高値と次の値の検索
現在のところ非常に基本的なもので、MsgBoxの値を提供しているので、動作していることを確認できます。
ただし、最も高い値と2番目に高い値しか検出されません。 3番目と4番目の値は0として返されます。何が欠けていますか?
Sub Macro1()
Dim rng As Range, cell As Range
Dim firstVal As Double, secondVal As Double, thirdVal As Double, fourthVal As Double
Set rng = [C4:C16]
For Each cell In rng
If cell.Value > firstVal Then firstVal = cell.Value
If cell.Value > secondVal And cell.Value < firstVal Then secondVal =
cell.Value
If cell.Value > thirdVal And cell.Value < secondVal Then thirdVal =
cell.Value
If cell.Value > fourthVal And cell.Value < thirdVal Then fourthVal =
cell.Value
Next cell
MsgBox "First Highest Value is " & firstVal
MsgBox "Second Highest Value is " & secondVal
MsgBox "Third Highest Value is " & thirdVal
MsgBox "Fourth Highest Value is " & fourthVal
End Sub
別の方法の範囲を並べ替えた後、自分の価値観を拾うことであろう:) –
あなたが本当にVBAでこれを行う必要がありますか? –