打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA判断单元格区域内日期的最值(最大值、最小值、第二大值、第二小值)
userphoto

2023.09.04 广东

关注

VBA判断最大值用Application.Max函数,最小值用Application.Min函数,第N大值用Application.Large函数,第N小值用Application.Small函数,不过因为是日期格式,所以结果还要用CDate函数转换为Date数据类型,下面举例用法:

比如想要判断以上表格中第一列日期的最值(最大值、最小值、第2大值、第2小值),可以使用以下代码:

Sub 判断单元格区域内日期的最值()
MsgBox CDate(Application.Max(Columns(1)))   '判断单元格区域内最大日期
MsgBox CDate(Application.Min(Columns(1)))   '判断单元格区域内最小日期
MsgBox CDate(Application.Large(Columns(1), 2))   '判断单元格区域内第二大日期
MsgBox CDate(Application.Small(Columns(1), 2))   '判断单元格区域内第二小日期
End Sub

如果想要第N个大、小值,只需更改以上代码的Application.Large、Application.Small的第2个参数即可。

需要注意的是,Application.Large和Application.Small函数的第N大、小值,不是数值内第N大、小值,而是数组内第N大、小值,也就是说,如果数组内最大的值是10,而数组内有3个10,那么无论是最大值,还是第二大值、第三大值,都会是10。

另外因为最值函数不仅适用于单元格区域,还适用于数组,所以如果想要换一种思路,还可以这样写:

Sub 判断单元格区域内最大日期2()
arr = WorksheetFunction.Transpose(Range("A2:A21"))  '单元格区域内数据转化为数组
MsgBox CDate(Application.Max(arr))   '判断单元格区域内最大日期
End Sub

以上代码就是先把要判断最值的单元格区域放入数组中,再使用最值函数对数组内元素进行判断,能生成同样的结果。

想要了解更多VBA相关知识,欢迎到http://moqingyan.360doc.com我的个人图书馆查看。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
excel图文教程:极值的查找方法
前方高能:在Excel中多条件求最值的,这个陷阱你要知道。
年中汇报必备!让老板一眼就爱上的折线图,小白也能学会~
LOOKUP 函数(查找和引用函数)
这个函数牛到不行了,7.53%的人竟然还不会用
随机抽取相关人员参加活动,在Excel中如何实现?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服