如何使用 WorksheetFunction.Text 将日期从 M/D/YY 转换为 YYYY-MM-DD?
How do I use WorksheetFunction.Text to convert a date from M/D/YY to YYYY-MM-DD?
我的工作表中的单元格 B7 中有一个日期,格式为 9/1/2019,我想将其转换为格式为 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 returns 值 "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
Select
没有 return 一个值,所以这不会像您预期的那样工作:
FormattingValue = WS1.Range("B7").Select
在 VBA 中你可以使用 Format()
,不需要 select 任何东西:
Debug.Print Format(WS1.Range("B7").Value, "YYYY-MM-DD")
我的工作表中的单元格 B7 中有一个日期,格式为 9/1/2019,我想将其转换为格式为 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 returns 值 "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
Select
没有 return 一个值,所以这不会像您预期的那样工作:
FormattingValue = WS1.Range("B7").Select
在 VBA 中你可以使用 Format()
,不需要 select 任何东西:
Debug.Print Format(WS1.Range("B7").Value, "YYYY-MM-DD")