每个月的月底
End of the month for every month
在 excel 的用户表单中,使用 vba,我需要找到 month.For 示例的结尾,我的开始日期是 01.01.2015,结束日期是自动 31.01.2015.I 尝试使用此代码:
Private Function dhLastDayInMonth(Optional dtmDate As Date = 0) As Date
' Return the last day in the specified month.
If dtmDate = 0 Then
' Did the caller pass in a date? If not, use
' the current date.
dtmDate = Date
End If
dhLastDayInMonth = DateSerial(Year(dtmDate), _
Month(dtmDate) + 1, 0)
End Function
但此代码仅限 returns 二月底。
例子:
开始 date:01.01.2015 我的代码 returns 28.02.2015
或开始日期:05.02.2015 我的代码 returns 28.02.2015
第二行代码是编辑文本框以插入结束日期
Private Sub txtEDate_Change()
If txtEDate.Text = "" Then
MsgBox "You must enter a Date! "
Exit Sub
End If
If txtEDate.TextLength = 2 Or txtEDate.TextLength = 5 Then
txtEDate.Text = txtEDate.Text + "."
End If
If txtEDate.TextLength = 2 Or txtEDate.TextLength = 5 Then
txtEDate.Text = txtEDate.Text + "DD/MM/YYYY"
End If
txtEDate.Text = dhLastDayInMonth()
End Sub
您必须将年份和月份定义为 inputs 以获取月份中的最后一个日期:
Public Function LastDayInMonth(dIn As Date) As Date
LastDayInMonth = DateSerial(Year(dIn), Month(dIn) + 1, 0)
End Function
将给出某个月的最后日期,但前提是 dIn 具有正确的值。
很明显你应该 MsgBox dtmDate 在你的 UDF 的顶部。
在 excel 的用户表单中,使用 vba,我需要找到 month.For 示例的结尾,我的开始日期是 01.01.2015,结束日期是自动 31.01.2015.I 尝试使用此代码:
Private Function dhLastDayInMonth(Optional dtmDate As Date = 0) As Date
' Return the last day in the specified month.
If dtmDate = 0 Then
' Did the caller pass in a date? If not, use
' the current date.
dtmDate = Date
End If
dhLastDayInMonth = DateSerial(Year(dtmDate), _
Month(dtmDate) + 1, 0)
End Function
但此代码仅限 returns 二月底。 例子: 开始 date:01.01.2015 我的代码 returns 28.02.2015 或开始日期:05.02.2015 我的代码 returns 28.02.2015
第二行代码是编辑文本框以插入结束日期
Private Sub txtEDate_Change()
If txtEDate.Text = "" Then
MsgBox "You must enter a Date! "
Exit Sub
End If
If txtEDate.TextLength = 2 Or txtEDate.TextLength = 5 Then
txtEDate.Text = txtEDate.Text + "."
End If
If txtEDate.TextLength = 2 Or txtEDate.TextLength = 5 Then
txtEDate.Text = txtEDate.Text + "DD/MM/YYYY"
End If
txtEDate.Text = dhLastDayInMonth()
End Sub
您必须将年份和月份定义为 inputs 以获取月份中的最后一个日期:
Public Function LastDayInMonth(dIn As Date) As Date
LastDayInMonth = DateSerial(Year(dIn), Month(dIn) + 1, 0)
End Function
将给出某个月的最后日期,但前提是 dIn 具有正确的值。
很明显你应该 MsgBox dtmDate 在你的 UDF 的顶部。