查找并定位单元格区域中的最大值的方法
在对Excel数据进行分析时,有时需要找到该区域中数据的最大值,使用VBA中的Find方法能够方便地实现这一操作。本文介绍查找并定位单元格区域中的最大值的方法。
1、启动Excel并打开Visual Basic编辑器,在工程资源管理器中插入一个模块,在模块的“代码”窗口中输入程序代码,如图1所示。具体的程序代码如下所示:
Sub GetMaxs()
Dim aRange As Range
Dim aMaxVal As Double
If TypeName(Selection)<>"Range "Then
Exit Sub '如果没有选中区域,则退出程序
End If
If Selection.Count=1 Then
Set aRange=Cells '如果仅选中一个单元格,则搜索整个工作表
Else
Set aRange=Selection
End If
aMaxVal=Application.Max(aRange) '获取区域中的最大值
On Error Resume Next
aRange.Find(aMaxVal,aRange.Range("A1"),xlValues,xlWhole,xlByRows,xlNext,False).Select
If Err<>0 Then
MsgBox"没有找到最大值:"&aMaxVal
End If
End Sub
图1 创建模块并输入程序代码
提示
程序使用Range对象的Find方法来进行查询,该方法的语法结构如下所示:
expression.Find(What,After,LookIn,LookAt,SearchOrder,SearchDirection,MatchCase,MatchByte,SearchFormat)
这里,What参数是必须的,其用来指定要搜索的数据,可为字符串或任意Microsoft Excel数据类型。After参数表示搜索过程将从其之后开始进行的单元格。LookIn参数用于设置信息类型。LookAt参数用于设置文本的匹配方式。SearchOrder参数用于指定搜索区域的次序。SearchDirection参数用于设置搜索的方向。MatchCase参数值若为True,则进行区分大小写的查找,其默认值为False。MatchByte参数仅在选择或安装了双字节语言支持时使用,若为True,则双字节字符仅匹配双字节字符;若为False,则双字节字符可匹配其等价的单字节字符。SearchFormat参数用于设置搜索的格式。
2、按F5键运行该程序,切换到Excel,工作表中的最大值所在单元格处于激活状态,如图2所示。
图2 最大值所在单元格被激活