Как найти ячейки с другим форматом даты, а затем удалить их в Excel? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть данные с двумя разными форматами даты (Рис. 1), один формат «гггг / м / д», другой «мм / дд / гггг чч: мм».

Я хочуудалить данные, формат даты которых «мм / дд / гггг чч: мм» (желтый на рис.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

Может ли кто-нибудь помочь мне разобраться?Пример можно загрузить в здесь, в Google Drive Fig1

1 Ответ

0 голосов
/ 21 ноября 2018

В 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...