为什么我不能在日期或时间上使用Application.WorksheetFunction.Year()?

时间:2019-12-30 21:16:45

标签: excel vba

我很累,无意中尝试在VBA中使用Application.WorksheetFunction.Year()而不是Year(),但这仍然让我感到困惑,我试图弄清楚为什么会出错。输入以下代码:

Sub Test()

    Dim mydate As Date

    'In cell A1 on the activesheet is the short date "12/30/2019"
    mydate = Range("A1").Value

    Debug.Print Application.WorksheetFunction.Year(mydate)

End Sub

maxdateDate时,结果为

  

运行时错误'438':对象不支持此属性或方法。

maxdateLong时,将导致相同的错误。只是为了踢球,我尝试了Integer(由于日期的序列号大于Integer的上限,所以显然不起作用),所以会出现溢出错误。

为什么我不能在这里使用Application.WorksheetFunction.Year()Application.WorksheetFunction.Month()?我还尝试使用CLng()将其转换为我认为函数期望的结果,即相同的结果(运行时错误'438')。

1 个答案:

答案 0 :(得分:2)

没有Year的{​​{1}}方法,因为Intellisense或documentation将迅速显示。由于WorksheetFunctionVBA.Year函数已经存在,因此不需要VBA.Month版本。

只需使用WorksheetFunction函数。