将日期添加到特定日期

时间:2016-03-30 20:37:26

标签: vba date add

我有一个特定日期,我基本上想要做以下事情:添加60天(不跳过周末或假期 - 所以基本上是date+60),但是如果结果日期(第60天后)恰好是开始日期)不是工作日(周末或假日)带我到下一个工作日(跳过周末和假期)。将60天添加到日期时,它不会跳过任何周末或假日,但如果结果日期不是工作日,请带我到下一个。

例如:01/25/2016 + 60 = 03/25/2016,这是一个假期,所以带我到下一个工作日(因为它是星期五,它将在下周一返回我,因为星期一是在这种情况下不是假期,如果是,我需要它来检查星期二是否是假日,如果不是,请在星期二返回我。

我该怎么做?我最好用公式而不是VBA来做,但编程这绝对不是问题。

1 个答案:

答案 0 :(得分:0)

您可以在60天后轻松使用公式下一个工作日(周一至周五)

假设您的日期在 A1 ,并且60天后的下一个工作日存储在 B1 中,则B1可以使用此公式:

=A1+60+IF(WEEKDAY(A1+60,2)>5,8-WEEKDAY(A1+60,2),0)

除非您有公众假期的表格列表,否则当“下一个工作日”是公众假期时,您无法做多。

如果你这样做,请添加IFERROR()VLOOKUP(),但仍有可能同时使用Mon&星期二是公共假期(圣诞节可以做到这一点)。您将需要一个UDF来循环计算的下一个工作日,直到它不是公共假日。