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我的个人图书馆查看。 |
|