在Excel中,只要在一列中输入日期,另一列就会在3个工作日之前自动显示日期

时间:2017-06-28 18:10:23

标签: excel-formula

enter image description here

每当在B列中输入日期时,应在C列中自动插入3个营业日期之前的日期。我使用=IF(B15, WORKDAY(B15, -3), " ")此公式得到它,但无法在未将公式添加到空白的情况下自动插入以用于将来的行细胞。我需要它而不添加额外的空白单元格。任何建议将不胜感激

1 个答案:

答案 0 :(得分:1)

首先将列 C 格式化为某种日期格式,然后在工作表代码区域中插入此事件宏:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As Range
Set B = Range("B:B")

If Intersect(B, Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
v = Target.Value
If Not IsDate(v) Then Exit Sub

Application.EnableEvents = False
    Target.Offset(0, 1) = Application.WorksheetFunction.WorkDay(v, -3)
Application.EnableEvents = True
End Sub

C 列中没有输入公式。

修改#1:

另一种方法是输入 C15

= IF(B15 ="""",WORKDAY(B15,-3))

并复制下来。在 B 单元格填充之前, C 单元格将显示为空。