我完全难过了 -
在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。
答案 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)