Buen día, ¿Alguien sabe como podría quitarle el error run time 1004 a esta macro?

Public RunWhen As Double
Sub Parpadear()
    With ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font
     If .ColorIndex = 48 Then

        .ColorIndex = 2
        Else
        .ColorIndex = 48
    End If
   End With
   RunWhen = Now + TimeSerial(0, 0, 1)
   Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , True
  

End Sub
Sub noparpadear()
    ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font.ColorIndex = _
    xlColorIndexAutomatic
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , False
End Sub

1 respuesta

Respuesta
1

Ya revisé ambas macros y están bien.

Pero si ejecutas la macro "noparpadear", sin haber ejecutado previamente la macro "Parpadear", entonces te aparece el error: 1004 en tiempo de ejecución.

Podrías solucionarlo si pones la sentencia On Error Resume Next:

Sub noparpadear()
    ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font.ColorIndex = _
    xlColorIndexAutomatic
    On Error Resume Next
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , False
End Sub

Si la macro se detiene en otra parte, avísame y lo sigo revisando

Sal u dos

Gracias, ahorita acabo de ver que el error lo genera al proteger la hoja, creo que ese el problema, porque cuando la desprotejo ya no lo genera. Me podría ayudar por favor.

Gracias de antemano.

Eso implica que hay que desproteger la hoja, cambiar el color y volver a proteger:

Public RunWhen As Double
'
Sub Parpadear()
    Worksheets("NEW STYLES").Unprotect
    With ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font
        If .ColorIndex = 48 Then
            .ColorIndex = 2
        Else
            .ColorIndex = 48
        End If
    End With
    Worksheets("NEW STYLES").Protect
    RunWhen = Now + TimeSerial(0, 0, 1)
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , True
End Sub
'
Sub noparpadear()
    Worksheets("NEW STYLES").Unprotect
    ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font.ColorIndex = _
    xlColorIndexAutomatic
    Worksheets("NEW STYLES").Protect
    On Error Resume Next
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , False
End Sub

sal u dos

Infinitas gracias!!!!!

Esta resuelto. Le agradezco mucho su tiempo. Excelente aporte!!!

Buenas tardes

Ayer solicite ayuda con esta macro a la cual me dio solución al problema que me generaba. Ahora hay un nuevo error en el cual me gustaría que me orientaran sobre como puedo solucionarlo. Gracias de antemano.

Esta es la macro y genera el error "Run-Time Error '9' Subscript out of range" cuando la macro se esta ejecutando y hay dos libros abiertos y de la macro se pasa a trabajar con el otro libro, es ahí donde genera este error.

Public RunWhen As Double
Sub Parpadear()
    Worksheets("NEW STYLES").Unprotect
    With ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font
        If .ColorIndex = 48 Then
            .ColorIndex = 2
        Else
            .ColorIndex = 48
        End If
    End With
    Worksheets("NEW STYLES").Protect
    RunWhen = Now + TimeSerial(0, 0, 1)
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , True
End Sub
Sub noparpadear()
    Worksheets("NEW STYLES").Unprotect
    ThisWorkbook.Worksheets("NEW STYLES").Range("B2").Font.ColorIndex = _
    xlColorIndexAutomatic
    Worksheets("NEW STYLES").Protect
    On Error Resume Next
    Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Parpadear", , False
End Sub

Antecede a cada instrucción

Worksheets("NEW STYLES")

El objeto:

ThisWorkbook. Worksheets("NEW STYLES")

Prueba nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas