将String解析为Date时出现语法错误

时间:2014-03-31 07:21:55

标签: excel excel-vba vba

我正在尝试在Excel宏中解析VB中的String到日期,如下所示:

Sub report_macro()

    Dim nRow As Long
    Dim sDueDate As String
    Dim dueDate As Date

    For nRow = 5 To 65536
        If Not Range("A" & nRow).Value = "" Then
            sDueDate = Range("G" & nRow).Value
            dueDate = Date.ParseExact(sDueDate, "yyyy-MM-dd", System.Globalization.DateTimeFormatInfo.InvariantInfo)
            If Range("H" & nRow).Value = 57600 Then

                Range("A" & nRow & ":I" & nRow).Select
                Selection.Font.Bold = True
                With Selection.Interior
                    .Color = 13551615
                End With
            End If
        Else
            Exit For
        End If
    Next nRow

End Sub

我收到了Sytnax错误:

dueDate = Date.ParseExact(sDueDate, "yyyy-MM-dd", System.Globalization.DateTimeFormatInfo.InvariantInfo)

我做错了什么?

1 个答案:

答案 0 :(得分:0)

Date.ParseExact是一种VB.NET方法。您正在Excel中运行使用VBA而不是VB.NET(Differences

的宏

您最好的选择可能只是将值直接分配给日期变量(Value属性实际上是变体):

dueDate = Range("G" & nRow).Value

或者,您可以使用CDate

进行简单转换

如果您真的想要解析,请查看以下答案:A better CDate for VB6