【问题标题】:VBA - How do I convert Date into StringVBA - 如何将日期转换为字符串
【发布时间】:2019-01-28 15:54:53
【问题描述】:

我在 EXCEL 中有一个日期列,日期格式为 - 2019 年 1 月 27 日。我想在 VBA 中编写一个脚本来仅提取年份部分(2019 年)并将其放在另一列中。

我是否先将日期转换为字符串?然后使用

拆分字符串
`Split(date_as_string, "/")

获取年份部分??

如何将日期转换为字符串来实现这一点?任何其他解决此问题的方法也值得赞赏。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果您的日期列是真实日期格式,则 Excel YEAR 函数可用于在另一列中返回年份值。在这种情况下,列中反映的日期采用我的系统本地日期格式。它在您的系统中可能有所不同,但YEAR 将根据您的日期系统工作。

    编辑: 如果您想使用 VBA,那么宏的示例是:

    Sub Year_Only()
        Dim yr As String
        yr = Year(Range("A1"))
        Range("B1").Value = yr
    End Sub
    

    【讨论】:

      【解决方案2】:

      类似

      Sub JustYear()
          Dim yr As Long
          yr = Split(Range("A1").Text, "/")(2)
          Range("B1").Value = yr
      End Sub
      

      【讨论】:

        【解决方案3】:

        对于表示年份的文本,

        range("A1") = format(cdate(date_as_string), "yyyy")
        

        要获得代表年份的真实数字,

        range("A1") = val(format(cdate(date_as_string), "yyyy"))
        

        【讨论】:

          【解决方案4】:

          只需使用 Year() 函数:

          Option Explicit
          
          Sub test()
              Dim yea As Integer
              Dim r As Range
          
              Set r = Range("a1")
              yea = year(r.Value)
              Debug.Print yea
          End Sub
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多