VBA Weekday函数从Excel Weekday函数返回不同的值

时间:2014-06-05 13:26:57

标签: excel vba excel-vba

我完全难过了 -

在vba中使用Weekday()函数返回错误的工作日,而在Excel中的工作表中使用它返回正确的工作日。指定或省略周开始参数似乎也没有任何区别。

系统时钟(我假设它用于'今天')尚未更改。事实上,我甚至无法改变它。

这是我在VBA中的直接窗口返回的内容:

Print Weekdayname(Weekday(today),False)
Saturday

Print Weekday(today)
 7 

Print Application.WorksheetFunction.Weekday(today)
 7 

Print Weekday(6/5/2014)
 7 

Print Weekday(6/13/2014)
 7 

另一方面,excel表格为这些公式返回5:

=WEEKDAY(TODAY())
=WEEKDAY(DATEVALUE("06/5/2014"))

非常感谢任何帮助!

编辑:

我在Windows 7上使用Excel 2010。

2 个答案:

答案 0 :(得分:5)

问题是"今天"不会退货。现在使用"":

Weekdayname(Weekday(Now),False)

此外,对于您输入日期的最后一项功能,您需要将其放在引号中:

Weekday("6/5/2014")

答案 1 :(得分:3)

您尝试显示计算结果6/5/2014的日期序列号的工作日(即6除以5然后除以2014)。

如果要使用Date类型的文字值,请尝试立即窗口:

?Weekday(#6/5/2014#)

请注意以下与

之间的区别
?Weekday(6/5/2014)