下面我们看看代码:
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 如何计算最大最小值的个数?