|
用datediff似乎不能解决这个问题。老老实实判断吧。- Sub Test()
- Dim arr, tmp, rg As Range, csrq
- Dim i As Integer
- For Each rg In Range("d2", [d2].End(4).Address)
- arr = Split(rg.Value, Chr(10))
- For i = 0 To UBound(arr)
- arr(i) = Replace(arr(i), ".", "-")
- tmp = Split(arr(i), " ")
- csrq = CDate(tmp(2)) '出生日期
- tmp(2) = DateDiff("yyyy", csrq, Date)
- If Month(csrq) > Month(Date) Or (Month(csrq) = Month(Date) And Day(csrq) > Day(Date)) Then tmp(2) = tmp(2) - 1
- arr(i) = Join(tmp, " ")
- Next
- rg.Offset(0, 2) = Join(arr, Chr(10))
- Next
- End Sub
复制代码 |
评分
-
查看全部评分
|