根据另一个单元格的值插入特定日期的宏

Macro to insert specific date based on value from another cell

我有一个包含一串数字和字母的单元格。例如:06052022_GST_402。在此示例中,“06052022”部分是特定日期(2022 年 6 月 5 日)。我希望宏根据该值识别日期并将日期以 6/5/2022 格式输入另一个单元格。

您可以通过以下方式实现这一目标:

'Split the string by underscore delimiter into array and grab the first element (this will be string '06052022')
string_date = Split("06052022_GST_402", "_")(0)

'From that string grab each date component and store in a variable
string_year = Right(string_date, 4)
string_month = Mid(string_date, 3, 2)
string_day = Left(string_date, 2)

'Using function `DateValue()` concatenate the string date parts into a date of format `MM/DD/YYYY` which DateValue will turn into an actual date. Store that actual date in variable date_date and do with it as you wish. 
date_date = DateValue(string_month & "/" & string_day & "/" & string_year)

'Stick that date in a cell
Worksheets("Sheet1").Range("A1").value = date_date

你也可以在丑陋的一行中这样做:

x="06052022_GST_402"
Worksheets("Sheet1").Range("A1").value = Mid(x, 3, 2) & "/" & Left(x, 2) & "/" & Mid(x, 5, 4)

但这会吐出日期的字符串表示形式,而不是实际日期 type 因此它可能在您的 sheet 中与任何下游函数一起运行期待约会。