excel vba - 如何获取日期的日期名称?
Posted
技术标签:
【中文标题】excel vba - 如何获取日期的日期名称?【英文标题】:excel vba - How to get the Day Name of Date? 【发布时间】:2017-03-17 11:15:49 【问题描述】:我有一个小代码可以获取 Excel 中列出的日期的日期名称。但问题是,它没有得到正确的日期名称(例如星期二)。
例如:
sDayName = Format(Day(11/1/2016), "dddd")
然后输出会产生一个不正确的日期名称,即:
sDayName = "Sunday"
应该是“星期二”。 谢谢大家的帮助。
【问题讨论】:
你试过 sDayName = Format("11/01/2016", "dddd") 吗?? 删除Day()
部分,不需要
检查 online documentation for Format() function 你应该在哪里找到 firstdayoftheweek 参数
@cyberponk 谢谢伙计。问题解决了。请发布您的答案,以便我将其标记为正确。
FWIW - 您的代码试图找到 5.45634920634921E-03
的 Day
,即 11 除以 1,除以 2016。5.45634920634921E-03
相当于上午 7:51 的日期/时间在 1899 年 12 月 30 日,Day
是30
。使用"dddd"
格式对30
进行格式化首先可以得出日期30
表示1900 年1 月29 日,即星期一。但是,由于 Excel 中的错误导致它认为 1900 年是闰年,因此 Excel 将其报告为星期日。
【参考方案1】:
对于您的特定要求,假设您的日期字符串被格式化为您的区域设置:
sDayName = Format("11/01/2016", "dddd")
如果你想要今天的工作日:
sDayName = Format(Date, "dddd")
如果您想要任何区域设置中任何日期的工作日
sDayName = Format(DateSerial(2016, 11, 4), "dddd")
'change 2016, 11, 4 for your year, month, day values
:)
【讨论】:
将代表Date
的String
传递给Format
并不是一个好主意。【参考方案2】:
WEEKDAY 函数可用于此主题和 Vba 代码。例如:
Label2.Caption = WeekdayName(Weekday(TextBox2, 0), False, 0)
我在创建有关活动单元格日期输入的用户表单时使用了此功能。
【讨论】:
以上是关于excel vba - 如何获取日期的日期名称?的主要内容,如果未能解决你的问题,请参考以下文章
如何用EXCEL VBA批量提取JPG文件日期时间信息到表格中?