Несоответствие типов: код работал хорошо в течение нескольких месяцев, а теперь нет - PullRequest
0 голосов
/ 19 ноября 2018

Я запускал этот макрос некоторое время (я использую его, чтобы скрыть / показать строки, основанные на дате в ячейке), но внезапно он перестал работать сегодня;Я довольно новичок в VBA, поэтому я попытался найти его и найти проблему, но безрезультатно ... Я убедился, что все указанные ячейки имеют формат даты, но все еще получаю ошибку несоответствия типов, и этона самом деле не дает мне возможность отладки, когда появляется ошибка.(Office Standard Excel 2010)

Буду признателен за любые советы!

Sub HideRowsDate()
Dim cell As Range
For Each cell In Range("B6:B66")
    If IsDate(cell.Value) Then
        If DateValue(Format(cell.Value, "dd/mm/yyyy;@")) > DateValue(Format(Range("AA1"), "dd/mm/yyyy;@")) Then
            'cell = cell.Value
            cell.EntireRow.Hidden = True
        End If
    End If
    If IsDate(cell.Value) Then
        If DateValue(Format(cell.Value, "dd/mm/yyyy;@")) <= DateValue(Format(Range("AA1"), "dd/mm/yyyy;@")) Then
            'cell = cell.Value
            cell.EntireRow.Hidden = False
        End If
    End If
Next

End Sub

1 Ответ

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

Непроверенные:

Sub HideRowsDate()

    Dim cell As Range, dt

    If IsDate(Range("AA1").Value) Then '<< check for date in AA1
        dt = Range("AA1").Value
        For Each cell In Range("B6:B66").Cells
            If IsDate(cell.Value) Then
                cell.EntireRow.Hidden = (cell.Value > dt) 'will be either True or False...
            End If
        Next
    Else
        MsgBox "AA1 is not a date!"
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...