Функция VBA, чтобы проверить, является ли содержимое ячейки датой, возвращая true / false - PullRequest
0 голосов
/ 11 января 2019

Я извлекаю данные из отчета в 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 голосов
/ 11 января 2019

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