比较条件指令(vba)中的两个日期时出错13(类型不匹配)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较条件指令(vba)中的两个日期时出错13(类型不匹配)相关的知识,希望对你有一定的参考价值。
我编写了以下代码来删除工作表2的行,其中第7列(日期)的值小于工作表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对此进行测试。
另一种方法是使用DateDiff,但你最终可能会遇到同样的问题。
更新 一个简单的CDate示例:
Sub Test()
Dim s As String
Dim d As Date
s = "12/12/2017"
d = CDate(s)
End Sub
以上是关于比较条件指令(vba)中的两个日期时出错13(类型不匹配)的主要内容,如果未能解决你的问题,请参考以下文章