Как сравнивать даты в 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 LaterElse
                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 LaterElse
                Result = " Dates Are Equal "
            End If
        End If
        
    Range(" C " & i) = Result
    
    Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Результаты сравнения дат теперь отображаются в столбце C.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как отсортировать лист по нескольким столбцам
VBA: как подсчитать количество строк в диапазоне
VBA: как фильтровать столбец

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *