Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将天添加到特定日期_Vba_Date_Add - Fatal编程技术网

Vba 将天添加到特定日期

Vba 将天添加到特定日期,vba,date,add,Vba,Date,Add,我有一个特定的日期,我想基本上做到以下几点:增加60天(不跳过周末或假日-因此基本上是日期+60),但是如果结果日期(开始日期后的第60天)恰好不是工作日(周末或假日),请将我带到下一个工作日(跳过周末和假日)。将60天添加到日期时,不会跳过任何周末或假日,但如果结果日期不是工作日,请将我带到下一个日期 例如:01/25/2016+60=03/25/2016,这是一个假期,所以请带我到下一个工作日(因为是星期五,它会在下一个星期一返回我,因为在这种情况下,星期一不是假期,如果是,我需要它检查星期

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

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


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

你可以在60天后用公式轻松地做下一个工作日(周一-周五)

假设您的日期在A1,60天后的下一个工作日存储在B1,那么B1可以使用以下公式:

=A1+60+IF(WEEKDAY(A1+60,2)>5,8-WEEKDAY(A1+60,2),0)
除非你有一个公共假日的列表,否则当“下一个工作日”是公共假日时,你不能做很多事情

如果是这样,请添加
IFERROR()
VLOOKUP()
,但周一和周二仍有可能是公共假日(圣诞节可以这样做)。您将需要一个自定义项循环计算下一个工作日,直到它不是公共假日