Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value = "Passed" Then
Rows("2:5").EntireRow.Hidden = True
ElseIf Range("A1").Value = "Failed" Then
Rows("2:5").EntireRow.Hidden = False
End If
End Sub
Estoy agregando eso a un módulo VBA normal. Cuando intento ejecutarlo, el sistema abre una pantalla macro. Quiero que esto se ejecute en segundo plano para que todo lo que escriba Pasado en la fila A1 2-5 se oculte automáticamente.
Estoy usando Excel 2012. Por favor ayuda. Gracias :-)
microsoft-excel
vba
usuario746094
fuente
fuente
Respuestas:
No lo agregue a un módulo VBA normal; póngalo en el módulo de la hoja de trabajo donde desea que esto suceda.
El evento Worksheet_Change solo se activará si está almacenado en el código de la hoja de trabajo. Agregué este código a mi objeto y funcionó correctamente, así que solo póngalo en su hoja y estará listo.
Si desea que se ejecute en varias hojas, tiene un par de opciones. Puede poner el código tal como está en cada objeto de la hoja de trabajo, o puede poner el código en un módulo y agregar una Llamada a cada hoja de trabajo. Cada hoja tendría algo como esto:
Luego puede poner la mayor parte de su código en un módulo como este:
La segunda opción es un poco más compleja, pero es más fácil de mantener si necesita realizar cambios en el código de forma regular.
fuente