В 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