Vba 如果是星期一,则添加x y z

Vba 如果是星期一,则添加x y z,vba,excel,Vba,Excel,你能告诉我如何重组我的代码吗。目前,我正在D列底部添加日期-1(每天)。但是,如果是星期一,我需要将日期-3、日期-2和日期-1添加到D列的底部 这是我目前的代码: y.Activate With y1 Dim d As Long d = Cells(Rows.Count, "D").End(xlUp).Row + 1 'there was an error in the code, I have changed the N to d Cells(d, "D").Value = Date - 1

你能告诉我如何重组我的代码吗。目前,我正在D列底部添加日期-1(每天)。但是,如果是星期一,我需要将日期-3、日期-2和日期-1添加到D列的底部

这是我目前的代码:

y.Activate
With y1
Dim d As Long
d = Cells(Rows.Count, "D").End(xlUp).Row + 1 'there was an error in the code, I have changed the N to d
Cells(d, "D").Value = Date - 1
End With
我的假设是IIf声明?但我想它也需要一个循环


谢谢

就在你的
单元格(d,“d”)前面。Value=Date-1
行,输入一个:

If Weekday(Now()) = 2 Then
    Cells(d, "D").Value = Date - 3
    Cells(d + 1, "D").Value = Date - 2
    Cells(d + 2, "D").Value = Date - 1
Else
    Cells(d, "D").Value = Date - 1
End If
If Weekday(Now())
将比较一周中的哪一天(我相信默认情况下1是星期日)。因此,通过检查它是否为“2”,您就可以运行您想要的。我不确定这是否正是您的目标,但这将放置三个不同的日期值,从周五开始,到周日结束


也许不是最好的解决办法,但这是我对这个问题的理解。如果我不在,请告诉我,我会调整我的答案。

“当是星期一”-你基本上想要一个连续的日期范围,包括周末,对吗?没错。所以我想要周五、周六和周日的约会。例如,date-3、date-2和date-1为什么不使用
单元格(N,“D”)。Value=单元格(N-1,“D”)。Value+1
,然后循环它,直到你点击“date-1”。如果你跳过几天,它也会填满它。我不擅长循环,因此需要这方面的帮助。正如之前在答案被删除之前所建议的,你也建议的IIf在这种情况下似乎不起作用。除非它使用循环。e、 g.对于工作日()将是:单元格(d,“d”)。Value=IIf(工作日(日期)=vbMonday,Date-3,Date-1)太棒了!谢谢:)