XLA routines: EE_PrevBusinessDay

Nick's picture
EE_PrevBusinessDay takes a date, and a holiday calendar and returns the previous business day.
Function EE_PrevBusinessDay(rngHolidays As range, dt As Date) As Date
'Takes a date, a range of holidays, and returns the previous business day
    Dim intPvs     As Integer
    Dim dtPvs      As Date
'http://excelexperts.com/xla-routines-eePrevBusinessDay    for updates on this function

    intPvs = 1
    Do While True
        dtPvs = DateAdd("d", 0 - intPvs, dt)
        If EE_IsBusinessDay(rngHolidays, dtPvs) Then
            EE_PrevBusinessDay = dtPvs
            Exit Function
        End If
        intPvs = intPvs + 1
End Function