下面我们就来看看在Excel VBA一个程序,发现第二高值。

现状:

Find Second Highest Value in Excel VBA

1.首先,我们声明两个Range对象和Double类型的两个变量。我们呼吁Range对象RNG以及细胞。一个双变量我们称之为highestValue,和一个双变量我们称之为secondHighestValue。

Dim rng As Range, cell As Range

Dim highestValue As Double, secondHighestValue As Double

2.我们初始化与所选择的范围,并与值0两个双变量Range对象RNG

Set rng = Selection

highestValue = 0

secondHighestValue = 0

首先,我们要找到的最高值。我们想要查询的每个小区在一个随机选择的范围(该范围可以是任何大小的)。在Excel VBA中,你可以使用对于每个Next循环这一点。添加以下代码行:

'Find Highest Value

For Each cell In rng

Next cell

注:RNG以及细胞随机选择了这里,你可以使用任何名字。

请记住,是指这些名字在你的代码的其余部分。绿线是注释,这里只补充提供有关这段代码信息。

4.我们检查在此范围内的每个细胞。如果不是highestValue的高,我们将值写入变量highestValue。下面的代码行添加到循环。

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

注:第一个值大于highestValue始终较高,因为highestValue的初始值为0

5.第二,我们要找到第二个最高值。我们另对于每个Next循环。

'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.最后,我们使用显示一个MsgBox第二高值。

MsgBox "Second Highest Value is " & secondHighestValue

8.将一个命令按钮宏,选择号码,并单击命令按钮。

结果:

Find Second Highest Value Result