DateValue(“Mar / 02/2015”)导致类型不匹配。区域设置德国

时间:2015-06-01 13:18:50

标签: excel vba excel-vba

我编写代码来显示一年的季度,而不是使用确切的日期。 它看起来像这样:

"Q" & Application.WorksheetFunction.RoundUp(Month(ws.Cells(i, 3).Value) / 3, 0) _
    & " " & Year(ws.Cells(i, 3).Value)

ws.Cells(i, 3).Value可以是"Mar/06/2015"以及任何其他日期。但"Feb/06/2015"有效,但“Mar/06/2015"”的类型不匹配。为什么?

1 个答案:

答案 0 :(得分:1)

假设您的数据格式一致,您可以使用此功能从单元格返回实际日期值,然后您可以使用MonthYear函数:

Function GetDate(sInput As String, Optional sDelimiter As String = "/") As Date
    Dim vParts
    vParts = Split(sInput, sDelimiter)
    GetDate = Evaluate("DateValue(""" & vParts(1) & "-" & vParts(0) & "-" & vParts(2) & """)")
End Function