2016-04-08 237 views
1

我有一个数据集,其中包含诸如“2016年3月”之类的文本的值。将日期转换为VBA中的文本

现在,我写了下面的代码在我的报告单复制此:

DataFin.Range("E9:E9") = DateSerial(Year(Date), Month(Date), 0) 
DataFin.Range("E9:E9").Text = Format(DateSerial(Year(Date), Month(Date), 0), "mmmm yyyy") 

它具有正确的格式,但是当我在单击单元格值状态“2016年3月1日”,而不是“2016年3月”。

任何想法如何,我可以改变的潜在价值,以“2016年3月”

感谢,

皮特

+0

格式它是不是一个格式问题,我想单元格的值是文本的单元格 –

+0

“2016年3月”而不是” 2016年3月1日 –

+0

见我的答案公布更完整的解释 –

回答

1

必须格式化单元作为文本,然后将该值设置为文本值你想要的日期。

例如:

Sub demo() 
    Dim DT As Date 
DT = Date 

With Range("a1") 
    .NumberFormat = "@" 
    .Value = Format(DT, "mmmm yyyy") 
End With 
End Sub 
+0

是的,这正是我所追求的,谢谢你的帮助! –