2016-11-18 72 views
0

我正在使用VBA将日期输入捕获到单元格中。我遇到的问题是,如果单元格为空白,VBA将其读取为12:00:00 AM,因此VBA中的ISDATE()函数将其视为日期,但由于代码不是实际日期,因此代码被炸毁。什么VBA语法可以actaully检查以确认单元格包含DATE?忽略Excel中日期时间单元格的时间

这是我目前的语法

Sub IsDate() 
Dim d1 As Date 

d1 = CDate(Range("A1").Value) 

If IsEmpty(Range("A1")) = False Then 
    If IsDate(d1) = True Then 
     'Continue 
    End If 
End If 

回答

0

IsEmpty(Range("A1"))会给你不一致的结果使用Range("A1").Value <> ""

在内置VBA方法后不要命名您的子例程例如Sub IsDate()将覆盖VBA方法并造成严重破坏。

enter image description here

Sub TestIsDate() 

    Dim d1 As Date 
    If Range("A1").Value <> "" And IsDate(Range("A1").Value) Then 
     d1 = CDate(Range("A1").Value) 
    End If 

End Sub 
相关问题