Попробовал ваш код, и он довольно быстро работает с 4536 ячейками, содержащими проверки - так как вы по праву нарушаете свой FOR при первом появлении неподтвержденной ячейки
Я пытался измерить время в разных точках вашего кода, выполнив:
Dim Tick As Variant
Tick = Now()
' ... code
Debug.Print "ValCount", rngDV.Cells.Count ' just to see how many cells are in that range
' ... code
Debug.Print "Pt1", (Now() - Tick) * 86400000 'display milliseconds
' ... code
Debug.Print "Pt2", (Now() - Tick) * 86400000 'display milliseconds
' ... code
Debug.Print "Pt3", (Now() - Tick) * 86400000 'display milliseconds
' etc.
и получил не поддающуюся измерению задержку (за исключением, конечно, перехода в отладчик с помощью F8)
Как общий совет ... попытайтесь выяснить, где именно ваш код медленный, и давайте возьмем его оттуда.