【问题标题】:Excel: WeekNum error in VBA and Formula SheetExcel:VBA 和公式表中的 WeekNum 错误
【发布时间】:2015-12-22 20:09:26
【问题描述】:

对于每个日历,天数 01-02-03/jan/2016 是第 53 周。

但在 excel(VBA 和表格公式)中,这是第 nr 周。 2016 年 1 月。

 cellValue = "01/01/2016"
 res = WorksheetFunction.WeekNum(cellValue, 2)

这是严重的错误还是正确的?

这个问题有补丁吗?

【问题讨论】:

标签: excel excel-formula vba


【解决方案1】:

看起来您正在使用 ISO 定义的周数。如果是这样,那么您需要将行更改为:

res = DatePart("ww", d, vbMonday, vbFirstFourDays)

有关 VBA 用于计算周数的非常好的解释,请查看 http://www.cpearson.com/excel/WeekNumbers.aspx

顺便说一句,=WEEKNUM()WorksheetFunction.Weeknum() 函数在 Excel 版本中的工作方式不同,因此您可以使用纯 VBA 解决方案进行更多控制。

【讨论】:

    【解决方案2】:

    您应该使用 21 而不是 2 作为第二个参数。

    【讨论】:

    • 使用 21 作为第二个参数不能正确运行,等于 1,2...21
    • 您拥有哪个版本的 Excel?它使用您的代码返回 53,而不是 Excel 2010 中的 2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多