VBA-如何将日期转换为字符串

时间:2019-01-27 15:47:36

标签: excel vba

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

我是否首先将Date转换为String?然后使用

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

获得年份部分?

如何将Date转换为String以实现此目的?任何其他解决此问题的方法也将受到赞赏。

4 个答案:

答案 0 :(得分:2)

类似

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

enter image description here

答案 1 :(得分:2)

如果您的日期列为真日期格式,则可以使用Excel func detectScreenShot(action: @escaping () -> ()) { let mainQueue = OperationQueue.main NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: mainQueue) { notification in // executes after screenshot action() } } 函数在另一列中返回年份的值。在这种情况下,列中反映的日期是我的系统本地日期格式。您的系统可能有所不同,但是YEAR将根据您的日期系统工作。

year_snapshot

编辑: 如果要使用VBA,则宏示例为:

YEAR

year_vba

答案 2 :(得分:1)

只需使用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

答案 3 :(得分:0)

对于表示年份的文本,

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

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

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