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

标签 vba excel

我完全被难住了-

使用 Weekday() vba 中的函数返回不正确的工作日,而在 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。

最佳答案

问题是“今天”不会返回任何东西。现在使用”:

Weekdayname(Weekday(Now),False)

此外,对于您输入日期的最后一个函数,您需要将其放在引号中:
Weekday("6/5/2014")

关于VBA Weekday 函数返回与 Excel Weekday 函数不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24061516/

相关文章:

vba - 遍历命名范围列表

vba - 如何发出可在 32 位、64 位 Windows 以及 Mac (VBA Excel) 上运行的 http 请求?

excel - 如何检查特定范围内是否有任何彩色单元格?

arrays - 使用字典的 Vlookup 替代方案

excel - 从 VSTO Excel 插件异步调用进程内 COM-DLL?

excel - VBA COUNTIFs公式引用另一个工作表中的动态范围

ms-access - 解析非结构化文本文件并将其导入 Microsoft Access(文件具有潜在的分隔符)

excel - 从不同工作表中的单个列中查找字符串并返回地址

sql-server - 将数据从 Excel 导入 MS SQL Server 时如何创建标识列(使用导入和导出向导)?

excel - 平均时间(以毫秒为单位)