朋友们好,今日讲VBA代码解决方案的第50讲:VBA中求最大值、最小值.和上节的内容一致,在VBA中我们可以利用的函数不如EXCEL中多,但是,我们可以借助于EXCEL的函数,来解决我们面临的问题。在VBA中虽然没有内置的函数可以进行最大、最小值的查找,但仍可以借助工作表Max、Min函数可以快速地在工作表区域中查找最大、最小值。
在本节的知识点中需要注意:
1 For Each 循环,这里就不再讲解,有不清楚的可以看看我上节的文章。
2 WorksheetFunction 表示应用的是工作表函数
3 MsgBox 这里是弹出对话框,告诉我们计算机算出的结果。
4 rng.Interior.ColorIndex 是单元格颜色的设置
这里再次看看一下EXCEL中各个颜色的值
下面我们看看代码:
Sub Myseeks()
Dim rng As Range
Dim myRng As Range
Dim k1 As Integer, k2 As Integer
Dim mymax As Double, mymin As Double
Set myRng = Sheets("Sheet3").Range("a1:f20")
For Each rng In myRng
If rng.Value = WorksheetFunction.Max(myRng) Then
rng.Interior.ColorIndex = 3
k1 = k1 1
mymax = rng.Value
ElseIf rng.Value = WorksheetFunction.Min(myRng) Then
rng.Interior.ColorIndex = 5
k2 = k2 1
mymin = rng.Value
Else
rng.Interior.ColorIndex = 0
End If
Next
MsgBox "最大值是:" & mymax & "共有 " & k1 & "个" _
& Chr(13) & "最小值是:" & mymin & "共有 " & k2 & "个"
End Sub代码解析:
Myseeks过程在工作表单元格区域中查找最大、最小值,并将其所在的单元格底色分别设置为红色和蓝色。
第2行到第5行代码声明变量类型。
第6行代码使用关键字Set将单元格引用赋给变量myRng。
第7行到第19行代码遍历单元格区域,使用工作表Max、Min函数判断单元格数值是否是所在区域的最大、最小值,如果是,将其所在的单元格底色设置为红色或蓝色,并保存其数值和数量。
第20、21行代码使用消息框显示最大、最小值数值和数量。
运行Myseeks过程后将工作表区域最大、最小值所在的单元格的底色设置为红色或蓝色并用消息框显示其数值和数量.
下面看代码实测,代码截图:
运行截图:
今日内容回向:
1 如何在VBA中获取最大最小值?
2 如何计算最大最小值的个数?