首页 > 解决方案 > 从 vba 中的周值获取月值

问题描述

我想从第几周获取月份值。

假设如果一个星期被两个月共享,那么我需要得到两个月

例如
当输入第 30 周时,结果应该是第 7 个月
如果第 31 周 - 这是一个共享周,它应该返回第 7 个月(2 天)和 8(3 天)

7 月 2 周,8 月 3 周

我尝试了对我没有用的 datepart 方法

dyWk = DatePart( "w", #07/31/2018# ) // Here date as input

标签: vbaexcel

解决方案


你的问题有点模棱两可,但这能满足你的需要吗?

week = 30
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))

当周 = 30 时,您将获得:

month_at_start_of_week = 7 
month_at_end_of_week = 7

当周 = 31 时,您会得到:

month_at_start_of_week = 7 
month_at_end_of_week = 8

推荐阅读