【问题标题】:Take week dates from Sunday to Saturday and get month value从周日到周六获取周日期并获取月份值
【发布时间】:2018-06-11 09:20:04
【问题描述】:

我有以下代码来获取月份值。所以我可以得到月份的价值,即使周是在两个月内。

week = 1
year_to_use = 2018
month_at_start_of_week = Month(DateAdd("ww", week - 1, DateSerial(year_to_use, 1, 1)))
month_at_end_of_week = Month(DateAdd("ww", week, DateSerial(year_to_use, 1, 1) - 1))

我以前的代码获取从星期一到星期日的星期日期,但我想考虑星期日期从星期日到星期六开始/结束

我还需要计算 month_at_start_of_weekmonth_at_end_of_week 的天数

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果不使用 DateSerial(实际上是指 2018 年 1 月 1 日,即星期一),而是使用已知的星期日日期,那么您的代码将按预期工作,如下所示:

    Sub foo()
        week = 5
        year_to_use = 2018
        month_at_start_of_week = Month(DateAdd("ww", week - 1, "30/12/2017"))
        month_at_end_of_week = Month(DateAdd("ww", week, "30/12/2017"))
    End Sub
    

    【讨论】:

    • 感谢您的代码。但它给出了与我的代码相同的输出对于第 13 周的测试,开始和结束月份应该是 3,但它不是(3,4)
    • @ManiMuthuPandi,请尝试使用日期 30/12/2017,我相信这应该可以按预期工作,因为我应该从结果中减去一天。如果还有其他问题,请告诉我。
    • 太棒了。你是对的,如果我将日期更改为 30/12/2017 它的工作;但是我又如何将它用于动态年份
    • 抱歉@ManiMuthuPandi 我不确定您所说的“动态年份”是什么意思,如果有帮助,请您将我的回复标记为答案吗? :) 谢谢。
    • 这里你已经硬编码了初始日期,如果年份是 2019 年或 2020 年呢..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多