如何找到具有不同日期格式的单元格,然后在Excel中将其删除?

时间:2018-11-21 04:53:17

标签: excel

我有两种不同日期格式的数据(图1),一种格式是“ yyyy / m / d”,另一种格式是“ mm / dd / yyyy hh:mm”。

我想删除日期格式为“ mm / dd / yyyy hh:mm”的数据(图1中的黄色),因为我只需要每日数据。预期结果如下:

Date Collected  Value
2016/1/1    2.1
2016/1/2    0.6
2016/1/3    0.01
2016/1/4    0.9
2016/1/5    3
2016/1/6    1.9
2016/1/7    0.5
2016/1/8    1.1
2016/1/9    0

有人可以帮我弄清楚吗?该示例可以在here in Google Drive中下载 Fig1

1 个答案:

答案 0 :(得分:1)

在Excel中,日期是整数,时间是小数。您可以从其自身中减去该单元格的Int来查看该单元格是否返回值(如果有)-然后它包含一个时间。这就是您要删除的内容。

将您要删除的数据添加到特殊范围内,在此示例中:delRng,然后在完成循环后删除delRng

Sub delData()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(1)

    Dim r As Long, delRng As Range
    With ws
        For r = 2 To LastRow(ws)
            If .Cells(r, 1) - Int(.Cells(r, 1)) > 0 Then
                If delRng Is Nothing Then
                    Set delRng = .Range(.Cells(r, 1), .Cells(r, 2))
                Else
                    Set delRng = Union(delRng, .Range(.Cells(r, 1), .Cells(r, 2)))
                End If
            End If
        Next r
    End With

    If Not delRng Is Nothing Then delRng.Delete

End Sub

Function LastRow(ByVal ws As Worksheet, Optional ByVal col As Variant = 1) As Long
    With ws
        LastRow = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
End Function