Como aplicar a fórmula de formatação condicional a grande variedade mais rapidamente

Eu criei uma fórmula de formatação condicional

=AND(SUMPRODUCT(($A$2:$A$" & lastRow & "=$A2)*($CT$2:$CT$" & lastRow & "=$CT2)*($CU$2:$CU$" & lastRow & "=$CU2)*($CV$2:$CV$" & lastRow & "=$CV2)*($CW$2:$CW$" & lastRow & "=$CW2))>1,$CT2 <> """")"

Para localizar e realçar as sobretaxas duplicadas com base em vários critérios: XID do produto (coluna A), critério 1 de sobretaxa (coluna CT), critério 2 de sobretaxa (coluna CU), tipo de sobretaxa (CV da coluna) e nível de sobretaxa (coluna CW). A fórmula funciona como um encanto, destacando as sobretaxas duplicadas; no entanto, na maioria das vezes tenho que aplicá-lo a um grande número de linhas (acima de 15000) e leva mais de 10 minutos para aplicar a fórmula de formato condicional. Fiquei curioso para saber se existe uma maneira mais rápida de aplicar essa fórmula a tantas células. Todo o meu código de referência é

'File Complete, highlights duplicate upcharges for products and skips over blank upcharge rows
Sub dupUpchargeCheck()

Dim lastRow As Integer
lastRow = ActiveSheet.Cells(Rows.Count, "CS").End(xlUp).Row
ActiveSheet.Range("CS2:CS" & lastRow).Select
With ActiveSheet.Range("CS2:CS" & lastRow)
    .FormatConditions.Add Type:=xlExpression, Formula1:="=AND(SUMPRODUCT(($A$2:$A$" & lastRow & "=$A2)*($CT$2:$CT$" & lastRow & "=$CT2)*($CU$2:$CU$" & lastRow & "=$CU2)*($CV$2:$CV$" & lastRow & "=$CV2)*($CW$2:$CW$" & lastRow & "=$CW2))>1,$CT2 <> """")"
    .FormatConditions(.FormatConditions.Count).Interior.ColorIndex = 3
End With

End Sub

Qualquer conselho é apreciado!

EDITAR:

Depois de brincar um pouco, percebi que meu problema não está na aplicação da fórmula de formatação condicional ao intervalo de células, mas na verdade quando clico no menu suspenso para filtrar a cor (depois que o código é executado e o comando a formatação condicional é aplicada) leva uma eternidade para que a caixa suspensa do filtro apareça (presumo que todas as fórmulas sejam calculadas naquele momento?). Alguma idéia de como posso resolver esse problema? Eu tentei uma das sugestões do @Nate decalcState = Application.Calculation, colocando-o logo antes da linha em que filtrei (via vba) na esperança de impedir que os cálculos fossem executados enquanto o sistema tentava mostrar a caixa de filtro, mas ainda leva uma eternidade. Com a adiçãoApplication.ScreenUpdating = False o tempo de processamento demora um pouco menos (o tempo é de 551 segundos para 15000 linhas). Receio que seja o melhor que eu possa conseguir, a menos que alguém tenha alguma sugestão?

questionAnswers(2)

yourAnswerToTheQuestion