以下は、私たちは二番目に高い値を検索エクセルVBAでプログラムを見ていきます。

状況:

Find Second Highest Value in Excel VBA

1.まず、我々は2つの範囲のオブジェクトと、double型の2つの変数を宣言します。私たちは、レンジRNGとセルオブジェクトを呼び出します。我々はhighestValueを呼び出し、そして我々はsecondHighestValueを呼び出す一つの二重可変1つのダブル変数。

Dim rng As Range, cell As Range

Dim highestValue As Double, secondHighestValue As Double

2.私たちは、選択した範囲と値0を持つ2つのダブルの変数を持つRangeオブジェクトのRNGを初期化

Set rng = Selection

highestValue = 0

secondHighestValue = 0

まず、我々は最高の価値を見つけたいです。我々は(この範囲は任意のサイズとすることができる)ランダムに選択された範囲内の各セルを確認したいです。エクセルVBAで、あなたは、このために次の各ループのために使用することができます。次のコード行を追加します。

'Find Highest Value

For Each cell In rng

Next cell

注:RNGとセルがランダムにここで選択されている、あなたは任意の名前を使用することができます。

あなたのコードの残りの部分でこれらの名前を参照することを忘れないでください。緑の行はコメントであり、唯一のコードのこの部分についての情報を提供するためにここに追加されます。

4.私たちは、この範囲内の各セルを確認してください。それはhighestValueよりも高いなら、我々は変数highestValueに値を書き込みます。ループに次のコード行を追加します。

If cell.Value > highestValue Then highestValue = cell.Value

注:highestValueの開始値が0であるので、最初の値は、常に高いhighestValueより

5.第二に、我々は二番目に高い価値を見つけたいです。私たちは、次の各ループのために別のものを追加します。

'Find Second Highest Value

For Each cell In rng

Next cell

6.私たちは、再び選択した範囲内の各セルを確認してください。それはsecondHighestValueより高いとhighestValueより低いなら、我々は変数secondHighestValueに値を書き込みます。ループに次のコード行を追加します。

If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value

7.最後に、私たちは、メッセージボックスを使用して、第2の最高値を表示します。

MsgBox "Second Highest Value is " & secondHighestValue

コマンドボタンでのマクロ8.プレイスには、数字を選択し、コマンドボタンをクリックしてください。

結果:

Find Second Highest Value Result