我想得到一个月的最后一天。
这是我的代码。如果我想调试它并将其编译到数据库中,它说它的语法有错误。

Public Function GetNowLast() As Date
    Dim asdfh As Date
    asdfh = DateValue("1." _
      & IIf(Month(Date) + 1) > 12, Month(Date) + 1 - 12, Month(Date) + 1) _
      &"."&IIf(Month(Date)+1)>12 , Year(Date)+1,Year(Date))
    asdf = DateAdd("d", -1, asdf)
    GetNowLast = asdf
End Function

最佳答案

GD Linuxman,

让我们专注于获得结果... :-)

另请参阅:here

@Scott Craner的评论很现场!尽管严格来说,没有必要使用格式。 (假设您要使用“日期”对象)

要实现您想要的功能,请按照以下步骤设置功能:

Function GetNowLast() as Date

    dYear = Year(Now)
    dMonth = Month(Now)

    getDate = DateSerial(dYear, dMonth + 1, 0)

    GetNowLast = getDate

End Function

您可以通过以下方式在代码中调用该函数:
Sub findLastDayOfMonth()

    lastDay = GetNowLast()

End Sub

或者,可能更整洁:
Function GetNowLast(inputDate as Date) as Date

    dYear = Year(inputDate)
    dMonth = Month(inputDate)

    getDate = DateSerial(dYear, dMonth + 1, 0)

    GetNowLast = getDate

End Function

您可以调用该函数并将其传递给输入参数。
Sub findLastDayOfMonth()

lastDay = GetNowLast(Now()) 'Or any other date you would like to know the last day of the month of.

End Sub

另请参阅@KekuSemau的this整洁解决方案

关于vba - 获取每月的最后一天,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33111285/

10-10 16:49