Excel VBA将日期列转为星期:代码全显示星期日的问题求助
将Excel日期转换为星期名称的解决方案
最简便的方法:Excel公式直接实现
不需要编写VBA,用Excel内置公式就能快速完成:
- 假设要把结果输出到F列右侧第7列(即M列),在M列第一个对应数据的单元格(比如M2)输入公式:
回车后下拉填充整列即可。=TEXT(F2,"AAAA")"AAAA"会返回全称星期(如星期日、星期一),如果需要简称(如日、一),可改成"AAA"。 - 也可以用
WEEKDAYNAME函数实现:=WEEKDAYNAME(WEEKDAY(F2))
修正你的VBA代码
你原来的代码错误在于直接将F1的计算结果赋值给所有目标单元格,而非让每个单元格引用对应行的F列数据,导致所有结果都是同一个值。修正后的代码如下:
Columns("F").SpecialCells(xlConstants).Offset(, 7).Formula2 = "=TEXT(F[@],""AAAA"")"
或者用WEEKDAYNAME版本:
Columns("F").SpecialCells(xlConstants).Offset(, 7).Formula2 = "=WEEKDAYNAME(WEEKDAY(F[@]))"
这段代码会给每个目标单元格设置公式,自动引用对应行的F列日期并转换为星期名称。
内容的提问来源于stack exchange,提问作者Matt Laming
相关产品推荐
相关产品推荐

