Excel VBA 日期格式:連字號以分隔符號給予奇怪的替換結果

Excel VBA 日期格式:連字號以分隔符號給予奇怪的替換結果

Excel 2007。

我想要一個巨集將今天的日期放入當前單元格中,格式為 dd-mmm-yy,例如 2014 年 10 月 30 日。

我的程式碼很簡單:

'ActiveCell.Value = Format(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")

相關內容