我有术语,创建日期,天数值。 期限可以等于“下个月的开始”,“月末”,“现在”。 我正在尝试创建一个带有“Term”的函数,如果其中的值是“下个月的开始”,则需要创建日期,到该月末,然后添加“days”。 例如,如果创建日期是1/1/2017,“Term”是“下个月的下半月”,而Days是5.它是1/31/2017 + 5,所以答案是2/5 / 2017年。 我想出了一个excel公式
IF(P3046="Beginning of next month",EOMONTH(DATE(YEAR(Creation date+days),MONTH(Creation date+days),15),0)+1,0)
但我无法弄清楚VBA与EOMONTH的等价物。这就是我试过的:
IIF(Term = "Beginning of next month",DateSerial(year(Creation date+days),month(Creation date+days)+1,0)
但它确实没有用。它给出了答案,但没有给出正确答案。 有没有人看到我没看到的错误。我已经开始了一段时间,所以我可能会遗漏一些东西。
非常感谢!!!
答案 0 :(得分:0)
您可以使用几个嵌套的DateAdd
语句定义函数:
Public Function EOMONTH(ByVal d As Date, ByVal days As Integer) As Date
EOMONTH = DateAdd("y", days, DateAdd("y", -1, DateAdd("m", 1, DateSerial(Year(d), Month(d), 1))))
End Function
?EOMONTH(#01/01/2017#,5)
'05/02/2017