VBA Excel 自动填充第二天日期的代码,但仅适用于工作日
VBA Excel code that autopopulates the next day's date, but only for weekdays
我有这段代码只是挂在 sheet 中,位于 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 循环中吗(?)。我不是编码员,我需要它来简化我的工作生活。任何指导将不胜感激。
添加一个 If
语句来检查今天是否是星期五:
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
If Format(Date, "dddd") = "Friday" Then
r.Offset(0, 12).Value = Date + 3
Else
r.Offset(0, 12).Value = Date + 1
End If
Next r
Application.EnableEvents = True
End Sub
已经有跳过周末的功能。无需重新发明轮子。只需使用 WORKDAY
函数
r.Offset(0, 12) = Application.WorksheetFunction.Workday(Date, 1)
我有这段代码只是挂在 sheet 中,位于 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 循环中吗(?)。我不是编码员,我需要它来简化我的工作生活。任何指导将不胜感激。
添加一个 If
语句来检查今天是否是星期五:
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
If Format(Date, "dddd") = "Friday" Then
r.Offset(0, 12).Value = Date + 3
Else
r.Offset(0, 12).Value = Date + 1
End If
Next r
Application.EnableEvents = True
End Sub
已经有跳过周末的功能。无需重新发明轮子。只需使用 WORKDAY
函数
r.Offset(0, 12) = Application.WorksheetFunction.Workday(Date, 1)