查找在Excel VBA中第二大的值
下面我们就来看看在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.将一个命令按钮宏,选择号码,并单击命令按钮。
结果: