.
Mmm, no creo.
Es una rutina eficiente: No tiene desplazamientos de pantalla, no se mueve a ninguna celda, y evaluando que sólo que haya un cero es más veloz que si tiene que evaluar si la celda a borrar tenga o no dato.
También hay que considerar si la sesión de MS Excel no está muy cargada. Probala cerrando Excel y volviendolo a abrir.
Por las dudas, prueba esta versión mejorada para ver si acelera algo (va con una yapa):
Sub Borracero()
'---- Variables modificables:
RangoBorr = "D10:X90" ' para cambiar rango
ColCrit = 3 ' numero de columna donde están los cero
'---- fin Variables
'
'---- inicio de rutina:
Application.ScreenUpdating = False
IniTime = Now
CeldaIni = Cells(Range(RangoBorr).Row, Range(RangoBorr).Column).Address
CantFilas = Range(RangoBorr).Rows.Count
Rep = 1
Repet = Range(RangoBorr).Columns.Count / ColCrit
For Rep = 1 To Repet
For LaFila = 0 To CantFilas - 1
Valor = Range(CeldaIni).Offset(LaFila, Rep * ColCrit - 1).Value
' Range(CeldaIni).Offset(LaFila, Rep * ColCrit - 1).Interior.ColorIndex = 44
If Valor = 0 Then
Range(CeldaIni).Offset(LaFila, Rep * ColCrit - 2).ClearContents
Range(CeldaIni).Offset(LaFila, Rep * ColCrit - 3).ClearContents
cont = cont + 1
End If
Next
Next
FinTime = Now - IniTime
FinTime = Format(FinTime, "hh:mm:ss")
Application.ScreenUpdating = True
ElMensaje = IIf(cont = 0, "NO SE BORRÓ DATO ALGUNO", "Cantidad de ceros encontrados : " & cont & Chr(10) & "en un tiempo de " & FinTime & " (hh:mm:ss)")
ElTitulo = "TERMINADO!"
MsgBox ElMensaje, vbInformation, ElTitulo
End Sub
Abrazo
Fer