下面我们将看一下Excel VBA中的一个程序,该程序找到第二高的值。
情况:
1.首先,我们声明两个Range对象和两个Double类型的变量。我们将Range对象称为rng和cell。我们将一个双精度变量称为highestValue,将一个双精度变量称为secondHighestValue。
Dim rng 作为范围,单元格作为范围
Dim maximumValue 作为 Double,secondHighestValue 作为 Double
Dim maximumValue 作为 Double,secondHighestValue 作为 Double
2.我们使用选定范围和两个Double变量(值0)初始化Range对象rng。
设置 rng =选择
最高值= 0
秒最高值= 0
最高值= 0
秒最高值= 0
3.首先,我们要找到最高的价值。我们要检查随机选择范围内的每个单元格(该范围可以是任意大小)。在Excel VBA中,可以为此使用“每个下一个”循环。添加以下代码行:
“找出最大值
为 每一个细胞在 RNG
下一页细胞
为 每一个细胞在 RNG
下一页细胞
注意:这里随机选择rng和cell,您可以使用任何名称。请记住在其余代码中引用这些名称。绿线是注释,仅在此处添加以提供有关这段代码的信息。
4.我们检查此范围内的每个单元格。如果它高于最高值,我们将该值写入变量最高值。将以下代码行添加到循环中。
如果 cell.Value> maximumValue,则 SupremeValue = cell.Value
注意:第一个值始终高于highestValue,因为highestValue的起始值为0。
5.第二,我们想找到第二高的价值。我们添加另一个For Each Next循环。
“寻找第二高值
对于 每一个细胞在 RNG
下一页细胞
对于 每一个细胞在 RNG
下一页细胞
6.我们再次检查选定范围内的每个单元格。如果它高于secondHighestValue且低于maximumValue,则将值写入变量secondHighestValue。将以下代码行添加到循环中。
如果 cell.Value> secondHighestValue 并且 cell.Value <highestValue,则 secondHighestValue = cell.Value
7.最后,我们使用MsgBox显示第二高的值。
MsgBox“第二个最高值是”&secondHighestValue
8.将宏放在命令按钮中,选择数字,然后单击命令按钮。
结果: