vbai用过后发现简单的不要的了,用[去split字符串得出数组a,在用]split数组元素得出数组a[i][0]就是时间字符串,最后排序字符串转换的日期,你就获得最大值:
'//定义一个函数获取日期最大值
public function maxVal(valu as range)
dim ax '//定义一个数组存储[分割数组
ax=Split(valu.Formula,"[") '//将单元格[分割成数组
dim datMenb as Date '//记忆日期变量
For Each am in ax '//遍历数组去获取日期值
dim st '//寄存日期字符串
dim dt '//寄存当前日期
st=Split(am,"]")[0] '//获取日期字符串,*]*中括号分割前一个就是
dt=CDate(Format(st, "0000-00-00 00:00:00")) '//将日期字符串转换成时间变量
If datMenb is not Null Then '//如果有记忆就参与比较,没有就直接赋值
If dt>datMenb Then
datMenb=dt '//有记忆,记忆没遍历的大就更新记忆
End if
Else
datMenb=dt '//没有记忆就给记忆
End if
Next am
maxVal=datMenb '//返回最大记忆值
End function
写好模块后,在excel里直接 =maxVal(单元格) 这样就好了
追问VBA是指宏吗? 代码运行错误,大神有完整一点的代码吗?
追答肯定出错啊 我手打的,大小写拟规范一下Function,Dim,整个代码结构思路没问题