Vba 如何将用户输入的字符串日期转换为Excel格式

Vba 如何将用户输入的字符串日期转换为Excel格式,vba,excel,Vba,Excel,如果用户输入2018年1月1日或2018年1月1日,我将如何编写vba将其转换为2018年1月1日 如果a1单元为“2018年1月1日”,则按此操作 Sub test() Dim m As Date, d As String m = DateValue(Range("a1")) d = Format(m, "mm/dd/yyyy") MsgBox d End Sub 如果a1单元为“2018年1月1日”,则按此操作 Sub test() Dim m A

如果用户输入2018年1月1日或2018年1月1日,我将如何编写vba将其转换为2018年1月1日

如果a1单元为“2018年1月1日”,则按此操作

Sub test()
    Dim m As Date, d As String

    m = DateValue(Range("a1"))
    d = Format(m, "mm/dd/yyyy")
    MsgBox d
End Sub
如果a1单元为“2018年1月1日”,则按此操作

Sub test()
    Dim m As Date, d As String

    m = DateValue(Range("a1"))
    d = Format(m, "mm/dd/yyyy")
    MsgBox d
End Sub

文本到列,固定宽度,下一步,MDY,完成

在VBA as中

Option Explicit

Sub Macro4()
    With Worksheets("sheet1").Columns(1)
        .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, 3)
        .NumberFormat = "m/d/yyyy"
    End With
End Sub

文本到列,固定宽度,下一步,MDY,完成

在VBA as中

Option Explicit

Sub Macro4()
    With Worksheets("sheet1").Columns(1)
        .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, 3)
        .NumberFormat = "m/d/yyyy"
    End With
End Sub

他们在哪里进入?尝试在对象浏览器(F2)中查找
VBA.Date
模块成员。Excel通常很擅长识别日期格式。为什么不让用户重新输入它无法解析的内容呢?
DateSerial(Split(str,“-”)(2)、Month(“1”)和Split(str,“-”)(0))、Split(str,“-”)(1))
其中
str
是日期。根据经验,您需要将
date
值视为日期;将它们视为字符串会导致很多问题。如果Excel将日期识别为
日期
,则需要设置该单元格的
数字格式
,而不是将日期“转换”为字符串。。。假设我们谈论的是一个包含日期的单元格。如果它是一个文本框,那么我们完全是在看别的东西。关心你的问题以澄清你的确切意思吗?他们在哪里输入?尝试在对象浏览器(F2)中查找
VBA.Date
模块成员。Excel通常很擅长识别日期格式。为什么不让用户重新输入它无法解析的内容呢?
DateSerial(Split(str,“-”)(2)、Month(“1”)和Split(str,“-”)(0))、Split(str,“-”)(1))
其中
str
是日期。根据经验,您需要将
date
值视为日期;将它们视为字符串会导致很多问题。如果Excel将日期识别为
日期
,则需要设置该单元格的
数字格式
,而不是将日期“转换”为字符串。。。假设我们谈论的是一个包含日期的单元格。如果它是一个文本框,那么我们完全是在看别的东西。介意你的问题来澄清你的意思吗?