Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Excel formula 在excel中,每当在一列中输入日期时,另一列应自动显示3个工作日之前的日期_Excel Formula - Fatal编程技术网

Excel formula 在excel中,每当在一列中输入日期时,另一列应自动显示3个工作日之前的日期

Excel formula 在excel中,每当在一列中输入日期时,另一列应自动显示3个工作日之前的日期,excel-formula,Excel Formula,无论何时在B列中输入日期,3个业务日期之前的日期都应自动插入C列。我使用=IF(B15,WORKDAY(B15,-3),“”)获取该日期,但如果不将公式添加到空白单元格中,则无法为以后的行自动插入该日期。我需要它而不需要添加额外的空白单元格。如有任何建议,请将第一列的格式设置为某种日期格式,然后将此事件宏插入工作表代码区域: Private Sub Worksheet_Change(ByVal Target As Range) Dim B As Range Set B = Range("B:B"


无论何时在B列中输入日期,3个业务日期之前的日期都应自动插入C列。我使用
=IF(B15,WORKDAY(B15,-3),“”)获取该日期,但如果不将公式添加到空白单元格中,则无法为以后的行自动插入该日期。我需要它而不需要添加额外的空白单元格。如有任何建议,请将第一列的格式设置为某种日期格式,然后将此事件宏插入工作表代码区域:

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

=如果(B15=“”,”,工作日(B15,-3))


然后抄下来。C单元格将显示为空,直到B单元格被填满。

如果将数据放入表格中,将数据格式化为表格可以完成一些复杂的操作。每次用户在表格下方的行中输入时,表格会自动展开并填充公式。表格解决了这个问题。谢谢,谢谢你的回复。我不喜欢使用宏。我很想知道有没有什么简单的方法可以把这个公式应用到未来的研究中cells@Mamta请参阅我的编辑#1我尝试了它,但对于要在B中输入的值,我不能将公式应用于C列的空行。最初,文件应仅包含包含数据的行。