首页 > 解决方案 > 如何使用 WorksheetFunction.Text 将日期从 M/D/YY 转换为 YYYY-MM-DD?

问题描述

我的工作表的单元格 B7 中有一个日期,格式为 2019 年 9 月 1 日,我想将其转换为格式为 YYYY-MM-DD 或 2019-09-01 的文本字符串。我尝试使用 WorksheetFunction.Text 并在网上搜索示例,但我的代码只生成了“True”结果,而不是重新格式化的日期。

此代码不起作用:

Dim FormattingValue As String
Dim FormattingResult As String

FormattingValue = WS1.Range("B7").Select

FormattingResult = WorksheetFunction.Text(FormattingValue, "YYYY-MM-DD")

Debug.Print FormattingResult

Debug.Print 返回值“True”,而不是 YYYY-MM-DD 格式的日期。

The code below does work thanks to the contributors:  

Dim FormattingResult As String 

FormattingResult = Format(WS1.Range("B7").Value, "YYYY-MM-DD")  

Debug.Print FormattingResult  

This successfully converted 11/5/19 to 2019-11-05

标签: excelvbaworksheet-function

解决方案


Select不返回值,因此这不会按您的预期工作:

FormattingValue = WS1.Range("B7").Select

在 VBA 中,您使用 can Format(),无需选择任何内容:

Debug.Print Format(WS1.Range("B7").Value, "YYYY-MM-DD")

推荐阅读