Как сравнивать даты в vba (с примерами)
Вы можете использовать следующий базовый синтаксис в VBA для сравнения двух дат:
SubCompareDates ()
Dim i As Integer
For i = 2 To 5
If CDate(Range(" A " & i)) < CDate(Range(" B " & i)) Then
Result = " First Date is Earlier "
Else
If CDate(Range(" A " & i)) > CDate(Range(" B " & i)) Then
Result = “ First Date is Later ”
Else
Result = " Dates Are Equal "
End If
End If
Range(" C " & i) = Result
Next i
End Sub
В этом конкретном примере будут сравниваться даты в соответствующих ячейках в диапазонах A2:A5 и B2:B5 и возвращаться результат сравнения дат в диапазоне C2:C5 .
Примечание . Функция CDate преобразует значение данной ячейки в дату.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: сравнение дат в VBA
Предположим, у нас есть следующие два столбца с датами в Excel:
Предположим, мы хотим сравнить даты в каждой совпадающей строке и отобразить результаты сравнения дат в столбце C.
Для этого мы можем создать следующий макрос:
SubCompareDates ()
Dim i As Integer
For i = 2 To 5
If CDate(Range(" A " & i)) < CDate(Range(" B " & i)) Then
Result = " First Date is Earlier "
Else
If CDate(Range(" A " & i)) > CDate(Range(" B " & i)) Then
Result = “ First Date is Later ”
Else
Result = " Dates Are Equal "
End If
End If
Range(" C " & i) = Result
Next i
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Результаты сравнения дат теперь отображаются в столбце C.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как отсортировать лист по нескольким столбцам
VBA: как подсчитать количество строк в диапазоне
VBA: как фильтровать столбец