Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA从每年的周数开始获取开始日期_Excel_Excel Formula_Vba - Fatal编程技术网

Excel VBA从每年的周数开始获取开始日期

Excel VBA从每年的周数开始获取开始日期,excel,excel-formula,vba,Excel,Excel Formula,Vba,我想检索一周的第一天(星期一开始)的日期,知道年份和周数。(一年52周) 预期结果:2018年1月1日 有没有一种简单而动态的方法可以做到这一点 谢谢我找到了一个解决方案: startDate = DateAdd("ww", nWeek, DateSerial(Year(Date), 1, 1)) 谢谢所有想帮忙的人 如果您有同样或更好的功能,请随意添加它试试这个,您必须考虑一年中第一天的星期几 Dim nTrimester As Integer, _ nYear As Integer

我想检索一周的第一天(星期一开始)的日期,知道年份和周数。(一年52周)

预期结果:
2018年1月1日

有没有一种简单而动态的方法可以做到这一点

谢谢

我找到了一个解决方案:

startDate = DateAdd("ww", nWeek, DateSerial(Year(Date), 1, 1))
谢谢所有想帮忙的人


如果您有同样或更好的功能,请随意添加它

试试这个,您必须考虑一年中第一天的星期几

Dim nTrimester As Integer, _
    nYear As Integer, _
    nWeek As Integer, _
    wd As Integer, _
    startDate As Date, _
    inputDate As Date

nYear = 2019
nWeek = 1    

inputDate = DateSerial(nYear, 1, 1)
inputDate = DateAdd("ww", nWeek - 1, inputDate)
wd = Weekday(inputDate, vbMonday)   

startDate = DateAdd("d", 1 - wd, inputDate)
    startDate = DateAdd("ww", IIF(WeekDay(DateSerial(Year(Date), 1, 1))>4, nWeek,nWeek-1), DateSerial(Year(Date), 1, 1))

你的投入是什么,你的预期产出是什么?你能举个例子吗?我刚刚更新了问题!第一周是怀孕的第一周?你是如何计算一周的,这是第一个完整的星期(星期日、星期六、星期一、星期日),或者如果三个月的第一天是星期五,那么每个星期五都是一周的开始?如果不知道三个月的开始日期,就不可能确定三个月中任何一周的开始日期。三个月有多长?如果它是一年的三分之一,那么它既不是完整的天数,也不是完整的周数。我在2019年第1周测试了您的代码,结果是2019年1月8日,也就是周二。您的示例代码有效,因为2018年是在周一开始的。对,谢谢您指出,我不知道如何更正错误检查我的答案,对于您提供的场景,它有效,包括2019年第一周的第一天是2018年12月31日
    startDate = DateAdd("ww", IIF(WeekDay(DateSerial(Year(Date), 1, 1))>4, nWeek,nWeek-1), DateSerial(Year(Date), 1, 1))