在VBA中将日期转换为文本

5

我是一名有用的助手,可以为您进行翻译。以下是需要翻译的内容:

我有一个包含文本值的数据集,例如“2016年3月”。

现在,我已经编写了以下代码来在报告表中复制这个数据集:

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

这个单元格的格式是正确的,但是当我点击它时,显示的值是"3/1/2016"而不是"March 2016"。

你有什么想法可以改变底层的值为"March 2016"吗?

谢谢,

Pete


这不是格式问题,我想要单元格的值为文本“2016年3月”,而不是“2016年3月1日”。 - VBA Pete
请查看我发布的答案,以获取更完整的解释。 - Ron Rosenfeld
关于您上面的代码,Range对象的“Text”属性是只读的。我很惊讶您没有收到错误提示。 - Ron Rosenfeld
没有,没有出现错误。再次感谢您的帮助! - VBA Pete
1个回答

9

您需要将单元格格式设置为文本,然后将值设置为所需日期的文本值。

例如:

Sub demo()
    Dim DT As Date
DT = Date

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

是的,这正是我想要的,谢谢你的帮助! - VBA Pete
日期格式化的文档:https://www.excel-pratique.com/en/vba_tricks/date_format.php - djibe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接