Excel VBA 日期格式:连字符作为分隔符会产生奇怪的替换结果

Excel VBA 日期格式:连字符作为分隔符会产生奇怪的替换结果

Excel 2007。

我想要一个宏将今天的日期放在当前单元格中,格式为 dd-mmm-yy,例如 30-Oct-14。

我的代码很简单:

'ActiveCell.Value = 格式(Now(),“dd-mmm-yy”)'

由于某种原因,这将返回带有空格而不是连字符的“30 Oct 14”。

类似格式可以正常工作。例如

dd-mm-yy 表示 30-10-14,
dd~mmm~yy 表示 30~Oct~14

单元格的实际值设置为“10 30 2014”

谁能给我一个简单的解决方法?如果可能的话,解释一下为什么会发生这种情况?

答案1

Excel 会自动将您使用宏输入的文本转换为日期(然后应用日期格式)。要强制 Excel 将其查看为文本,请在日期字符串前面添加单引号:

ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")

或者,先将单元格格式设置为文本类型:

ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")

相关内容