我有两种不同日期格式的数据(图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中下载
答案 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