使用 NumberFormat VBA Excel 添加文本

Posted

技术标签:

【中文标题】使用 NumberFormat VBA Excel 添加文本【英文标题】:Adding Text with the NumberFormat VBA Excel 【发布时间】:2021-03-12 11:46:33 【问题描述】:

我写了下面的代码,现在我想像这样添加带有日期和时间的文本。

Last Update on: 3/12/2021  6:38:43 AM

我尝试使用以下代码,但它不起作用,我们将不胜感激。

With Sheet9.Range("H8")
.Value = Now()
.NumberFormat = "Last update on: " & "mm/dd/yyyy h:mm:ss AM/PM"
End With

【问题讨论】:

【参考方案1】:

Excel(不是 VBA)中的数字格式类似于 "Last Update on " dd/ mmm yyyy- 需要将修复文本放在引号中。

使用 VBA 设置数字格式时,您需要告诉 VBA(不是 Excel)您希望在字符串中包含引号。你可以通过双引号来做到这一点。看下面的语句: 第一个引号告诉 VBA 一个字符串开始。第二和第三个引号告诉 VBA 你不想结束字符串,而是在字符串中放一个引号字符。

.NumberFormat = """Last Update on "" dd/ mmm yyyy"

【讨论】:

是的,我错了,谢谢您的更正。【参考方案2】:

“上次更新时间:”并不是真正有效的格式。 您可以尝试在格式化后添加文本。 Usint Range.Text 而不是 .Value 应该保留任何格式。

With Sheet9.Range("H8")
   .Value = Now()
   .NumberFormat = "mm/dd/yyyy h:mm:ss AM/PM"
   .Value = "Last update on: " & .Text
End With

如果我们还是要将它作为文本,我们可以使用 FunThomas 方法在一行中完成所有操作。

.Value = Format(Now(), """Last update on: "" mm/dd/yyyy h:mm:ss AM/PM")

【讨论】:

只需要在单个单元格中使用。非常感谢。 即修改单元格内容,代码运行后,单元格不再包含日期而是字符串。 @FunThomas 确实如此。 是的,我不需要将单元格设为日期格式,只需将当前时间和日期与文本一起粘贴即可。

以上是关于使用 NumberFormat VBA Excel 添加文本的主要内容,如果未能解决你的问题,请参考以下文章

excel vba:列列表的数字格式

在 VBA excel 中动态设置单元格的 NumberFormat [关闭]

excel vba 数字转文本

excel日期格式与vba中的不同

Excel Vba。将 [m] 格式转换为通用格式

Excel 如何在VBA中设定单元格的格式为文本