VBA函数可验证单元格内容是否为日期,并返回true / false

时间:2019-01-11 18:28:28

标签: excel vba validation types

我要将数据从报表中提取到excel中,并希望删除包含标题/空格/其他字符的行。我无法向您显示数据,因此您必须相信,检查设置列中的有效日期是确定是否删除该行的最佳方法。

我的问题是,当所选单元格包含有效的日期格式时,DateValue()似乎返回true,但是当我使用它来验证不包含日期的单元格时,它会引发类型错误(我想'假”)。

有没有更好的功能可以使用,或者如果没有,最好的方法是什么?

Public TotalRowCount As Integer

Sub RemoveUnwantedRows()

    Call FindTotalRowCount

    Dim i As Integer
    i = 1
    Do While (i <= TotalRowCount)
        If DateValue(Cells(i, 13).Value) Then
            Rows(i).Delete Shift:=xlUp
            TotalRowCount = TotalRowCount - 1
        Else: i = i + 1
        End If
    Loop
End Sub

1 个答案:

答案 0 :(得分:0)

这将删除在第13列中包含日期的所有行:

Sub RowKiller()
    Dim i As Long, TotalRowCount As Long
    TotalRowCount = Cells(Rows.Count, 13).End(xlUp).Row
    For i = TotalRowCount To 1 Step -1
        If Not IsDate(Cells(i, 13)) Then Cells(i, 13).EntireRow.Delete
    Next i
End Sub