13 错误(类型不匹配)比较条件指令 (VBA) 中的两个日期



我已经写了以下代码来删除worskheet 2的行,其中第7列的值(日期(的值较小的tan值1:

Sub delete()
Dim listaops As Worksheet
Dim RToDelete As Range
Dim DTtoCompare As Date
Dim DTofOp As Date
Dim i As Integer
Set listaops = ThisWorkbook.Worksheets("QryOperacionesComprasyAmort0239")
Set RToDelete = Range("G2", Range("G2").End(xlDown))
DTtoCompare = ThisWorkbook.Worksheets(1).Cells(1, 1).Value
For i = RToDelete.Cells.Count + 1 To 2 Step -1
    DTofOp = listaops.Cells(i, 7).Value
    If DTofOp < DTtoCompare Then
        Cells(i, 7).EntireRow.delete
    End If
Next i
End Sub

到达我设置DTToCompare的指令时:DTtoCompare = ThisWorkbook.Worksheets(1).Cells(1, 1).Value我会得到以下内容:

13错误:类型不匹配

我想这是因为变量不正确或分配给日期格式,我尝试了很多事情而没有成功。

谁能帮我吗?

如果该值不是日期,这将发生(例如2月29日今年不会到来(。您可以在设置键入变量之前使用ISDATE对其进行测试。

另一种方法是使用约会夫,但您可能会出现同样的问题。

更新
CDATE的一个简单示例:

Sub Test()
    Dim s As String
    Dim d As Date
    s = "12/12/2017"
    d = CDate(s)
End Sub

最新更新