将日期复制到空白/未格式化行上的工作表时,我无法正确格式化日期。
我正在使用宏将值从一张纸复制到另一张纸,并且我希望一列包含运行脚本的当前日期。
这是我所拥有的:
records_list.Worksheets("Sheet1").Range("J" & records_row_number) =
Format(Date, "ddmmmyy")
这是正确的,因为它将日期值放入目标表(records_list)。但是,格式的输入格式为“ d-mmm-yy”,这意味着该格式包含破折号并在几天内删除了前导零。
我想要的日期格式为09Oct18,但是显示为9-10月18
我无法为自己的一生弄清楚它为什么这样做或如何防止它。我在其他网站上尝试了很多有关日期格式的建议,但没有任何效果。但是,如果我进入单元格格式并将其强制为“ ddmmmyy”,则它可以正确显示,但是,我想避免对工作表中的数千行进行预格式化,以便更快地打开/保存。
谢谢!
答案 0 :(得分:0)
Excel在选择如何显示日期时使用范围的数字格式,而不是日期中写入日期的格式。要更改范围的数字格式,您可以执行以下操作:
With records_list.Worksheets("Sheet1").Range("J" & records_row_number)
.Value = Date
.NumberFormat = "ddmmmyy"
End With
答案 1 :(得分:-1)
这需要分两步完成。首先输入值,然后设置数字格式:
records_list.Worksheets("Sheet1").Range("J" & records_row_number).Value = Date
records_list.Worksheets("Sheet1").Range("J" & records_row_number).NumberFormat = "ddmmmyy"
甚至可以更好地配合使用:
With records_list.Worksheets("Sheet1").Range("J" & records_row_number)
.Value = Date
.NumberFormat = "ddmmmyy"
End With