Hiya, I think something like this should work for you.
Sub MATCH_CATCH()
Dim ws As Worksheet
Dim sDateStart As String
Dim sDateEnd As String
Dim nDistance As Double
Dim nLR As Double
Dim nRow As Double
Dim bFound As Boolean
Set ws = ThisWorkbook.Sheets("Sheet1")
sDateStart = ws.Range("C3")
sDateEnd = ws.Range("C4")
nLR = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
bFound = False
For X = 2 To nLR
If ws.Cells(X, 1) = sDateStart Then
bFound = True
End If
Next X
nDistance = DateDiff("d", sDateStart, ws.Cells(2, 1))
nRow = 2
If bFound = False Then
For X = 3 To nLR
If DateDiff("d", sDateStart, ws.Cells(X, 1)) < nDistance And DateDiff("d", sDateStart, ws.Cells(X, 1)) >= 0 Then
nDistance = DateDiff("d", sDateStart, ws.Cells(X, 1))
nRow = X
End If
Next X
ws.Range("C3") = ws.Cells(nRow, 1)
End If
bFound = False
For X = 2 To nLR
If ws.Cells(X, 1) = sDateEnd Then
bFound = True
End If
Next X
nDistance = DateDiff("d", ws.Cells(X, 1), sDateEnd)
nRow = 2
If bFound = False Then
For X = 3 To nLR
If DateDiff("d", ws.Cells(X, 1), sDateEnd) < nDistance And DateDiff("d", ws.Cells(X, 1), sDateEnd) >= 0 Then
nDistance = DateDiff("d", ws.Cells(X, 1), sDateEnd)
nRow = X
End If
Next X
ws.Range("C4") = ws.Cells(nRow, 1)
End If
End Sub
Bookmarks