Cómo aplicar la fórmula de formato condicional a un rango amplio más rápido

Creé una fórmula de formato 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 buscar y resaltar recargos duplicados en función de múltiples criterios: XID del producto (columna A), criterios de carga 1 (columna CT), criterios de carga 2 (columna CU), tipo de carga (columna CV) y nivel de carga (columna CW). La fórmula funciona como un encanto que resalta los recargos que son duplicados; sin embargo, la mayor parte del tiempo tengo que aplicarlo a una gran cantidad de filas (más de 15000) y me lleva más de 10 minutos aplicar la fórmula de formato condicional. Tenía curiosidad por saber si hay una forma más rápida de aplicar esta fórmula a tantas celdas. Todo mi código de referencia es

'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

Cualquier consejo es apreciado!

EDITAR:

Después de jugar un poco, me di cuenta de que mi problema no es con la aplicación de la fórmula de formato condicional al rango de celdas, sino en realidad cuando hago clic en el menú desplegable para filtrar el color (después de ejecutar el código y se aplica el formato condicional) el cuadro desplegable del filtro tarda una eternidad en aparecer (supongo que todas las fórmulas se calculan en ese momento). ¿Alguna idea de cómo puedo solucionar ese problema? He probado una de las sugerencias de @Nate decalcState = Application.Calculation, colocándolo justo antes de la línea donde filtré (a través de vba) con la esperanza de que detenga la ejecución de los cálculos ya que el sistema intentó mostrar el cuadro de filtro, pero todavía tarda una eternidad. Con la adiciónApplication.ScreenUpdating = False el tiempo de procesamiento toma un poco menos de tiempo (cronometrado alrededor de 551 segundos para 15000 filas). Me temo que podría ser lo mejor que pueda obtener a menos que alguien más tenga alguna sugerencia.

Respuestas a la pregunta(2)

Su respuesta a la pregunta