![Excel VBA 日期格式:连字符作为分隔符会产生奇怪的替换结果](https://linux22.com/image/1428917/Excel%20VBA%20%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%EF%BC%9A%E8%BF%9E%E5%AD%97%E7%AC%A6%E4%BD%9C%E4%B8%BA%E5%88%86%E9%9A%94%E7%AC%A6%E4%BC%9A%E4%BA%A7%E7%94%9F%E5%A5%87%E6%80%AA%E7%9A%84%E6%9B%BF%E6%8D%A2%E7%BB%93%E6%9E%9C.png)
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")