我有这段代码只是卡在位于 VBA 项目中的工作表中,该项目自动填充 Excel 表单的日期。我一直在修改它,让它在个人在单元格 I6 中输入姓名时填充当天的日期。在第 8 行,
r.Offset(0, 12).Value = Date + 1
我添加了一个 1 来填充第二天的日期。现在,如果在星期五,我想进一步输入下一个工作日的日期。因此,每个工作日,当用户在单元格 I6 中输入数据时,它将下一个工作日的日期插入到同一范围内向下 12 列的单元格中,除了星期五,我希望填充的日期是下周的星期一。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Range, AF As Range, Inte As Range, r As Range
Set I = Range("I6")
Set Inte = Intersect(I, Target)
If Inte Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In Inte
r.Offset(0, 12).Value = Date + 1
Next r
Application.EnableEvents = True
End Sub
我需要一个 if 语句吗?如果是这样,我可以把它放在 For 循环中(?)。我不是编码员,我需要这个来简化我的工作生活。任何指导将不胜感激。
最佳答案
已经有跳过周末的功能。无需重新发明轮子。只需使用 WORKDAY
功能
r.Offset(0, 12) = Application.WorksheetFunction.Workday(Date, 1)
关于自动填充第二天日期的 VBA Excel 代码,但仅适用于工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51991258/