朋友们好,今日讲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 如何计算最大最小值的个数?
这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。
欢迎大家到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。
工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。