Я пытаюсь выполнить вычисления даты в Excel VBA, но я получаю ошибку времени выполнения 13 (несоответствие типов), даже если Excel IsDate () возвращает true.
В Excel у меня есть следующееданныеA2: введите «5/20» отображается как «20 мая»A3: введите «5/20 12:00 р» отображается как «2019/05/20 12:00»A4: введите «5/20 12: 00p», отображается как «5/22 12: 00p»Я проверил, что ячейки A2 и A3 могут отображаться в виде числа вместо даты.Ячейка A4 отображается только как текст / строка, но функция VBA IsDate () по-прежнему передает данные формата A4.
Private Sub Date_Errors()
Dim MyRng As Variant
Set MyRng = ActiveSheet.Range("A2", "A4")
For Each cell In MyRng
If IsDate(cell) Then ' make sure the cell has a date
If cell.Value < Date Then
MsgBox ("Before")
ElseIf (cell.Value - 1) < Date Then
MsgBox ("Older")
End If
Else
MsgBox ("Not a date")
End If
Next
End Sub
MsgBox отображается правильно для ячеек A2 и A3, но ошибка несоответствия возникает в сообщении «ElseIf (ячейка»)..value - 1) "строка.Почему IsDate (ячейка) не ловит это и не падает к остальному?