【发布时间】:2018-08-21 01:24:01
【问题描述】:
当我尝试在 vba 中使用该公式时,我在一列中有两种不同的日期格式,它给出了应用程序定义的对象错误..
例如:日期格式
9/5/2018 17:51 ==> 2018 年 5 月 9 日
17/07/2018 15:45:20 ==> 这是 2018 年 7 月 17 日
公式:
=IF(ISNUMBER(DAY(N2)),DAY(N2),MID(N2,FIND("/",N2,1)+1,FIND("/20",N2,1)-4))&"/"&IF(ISNUMBER(MONTH(N2)),MONTH(N2),MID(N2,1,FIND("/",N2,1)-1))&"/"&IF(ISNUMBER(N2),YEAR(N2),MID(N2,FIND("/20",N2,1)+1,4))
Sub test()
Dim LastRow As Long
LastRow = ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
ActiveSheet.Range(i, 2).Formula = " If(ISNUMBER (DAY(Range(""D"" & i))),DAY(Range(""D"" & i)),MID(Range(""D"" & i),FIND(""/"",Range(""D"" & i),1)+1,FIND(""/20"",Range(""D"" & i),1)-4))&""/""&IF(ISNUMBER(MONTH(Range(""D"" & i))),MONTH(Range(""D"" & i)),MID(Range(""D"" & i),1,FIND(""/"",Range(""D"" & i),1)-1))&""/""&IF(ISNUMBER(Range(""D"" & i)),YEAR(Range(""D"" & i)),MID(Range(""D"" & i),FIND(""/20"",Range(""D"" & i),1)+1,4))"
Next i
End Sub
【问题讨论】:
-
既然用的是日期,为什么不用
IsDate? -
你能帮我纠正上面的 vba .. 我试过 isnumber @GMalc
-
已经很晚了,我明天会回来,但是请通读这些 SO 问题/答案,它们可能会帮助您更好地理解。 IsNumber vs IsDate 和 IsDate
-
你想做什么?如果您使用 VBA,则无需使用公式