A lo largo de sus prácticas de VBA, tendrá la necesidad de ejecutar macros cuando cambie un cierto rango o celda. En ese caso, para ejecutar macros cuando se realiza un cambio en un rango objetivo, usamos el evento de cambio. Los eventos en VBA nos permiten ejecutar las macros cuando ocurre un determinado evento.
Evento de cambio de rango de VBA de sintaxis
Private Sub Worksheet_Change (ByVal Target As Range) Si no se interseca (Target, Range ("your_range")) No es nada Entonces llame a your_macro End If End Sub
El evento no funciona en módulos. Debe escribirlos en objetos (hoja de trabajo, gráficos, libro de trabajo).
Lat tiene un ejemplo para aprender a ejecutar una macro cuando se realiza un cambio en un rango específico.
Ejemplo: ejecutar una macro de VBA cuando se realiza un cambio en el rango A2: A100
Primero, elegimos la hoja en la que ocurrirá el evento. Haga doble clic en esa hoja en el editor de VBA y copie el código a continuación o el código genérico de arriba y realice los cambios según sus requisitos.
En este ejemplo, quiero ejecutar un código macro / VBA cuando se realiza un cambio en el rango A2: A100 en la hoja 2. Para hacerlo, hago doble clic en la hoja2 en el explorador del proyecto. Abre la página de codificación para esa hoja. Puede hacer clic derecho en la hoja y hacer clic en el código de vista para hacer lo mismo.
Necesito usar el evento de cambio. Para eso, usamos la subrutina predeterminada Worksheet_Change (ByVal Target As Range). Se activa cuando se realiza un cambio específico. Entonces nuestro código es este:
Private Sub Worksheet_Change (ByVal Target As Range) Si no se cruza (Target, Range ("A2: A100")) no es nada, entonces llame a TestEvent End If End Sub
Cuando realice cambios en el rango A2: A100 en Sheet2, se llamará a la subrutina TestEvent, como puede ver en el gif anterior.
TestEvent es la subrutina pública en module2. Simplemente muestra un mensaje de que el evento está funcionando.
Sub TestEvent () MsgBox "¡El evento está funcionando!" End Sub
¿Como funciona?
Hemos puesto una condición:
Si no se cruza (objetivo, rango ("A2: A100")) no es nada, entonces
Aquí Intersect (Target, Range ("A2: A100")) Is Nothing devuelve True si no se realiza ningún cambio en el Range A2: A100. Ponemos un operador Not antes de esta declaración que invierte la salida dada por "Intersect (Target, Range (" A2: A100 "))". Por lo tanto, si no se realiza ningún cambio en el rango A2: A100, la expresión devuelve Falls y el sub TestEvent no recibe la llamada. Si realiza un cambio en cualquier celda en el rango A2: A100, la expresión devolverá True y se producirá el evento. Y eso es lo que está pasando aquí.
Nota: Puede poner cualquier subrutina en este bloque. Puede ser de cualquier módulo. Pero debería ser una subrutina pública. Puede establecer el rango en cualquier medida. Toda la hoja es el límite.
Así que sí, chicos, así es como pueden llamar a una subrutina o ejecutar un código macro / VBA cuando se realiza un cambio en un rango específico. Fue un ejemplo de evento básico. Este evento se activará solo cuando el cambio se base en texto. Por basado en texto me refiero a que si escribe algo en las celdas o elimina, el evento se activará. Si cambia el formato de las celdas, no se activará. Hay otros métodos para hacerlo.
Espero que haya sido de ayuda. Si tiene alguna consulta relacionada con este tema de VBA o cualquier otro tema relacionado con Excel, hágamelo saber la sección de comentarios a continuación. Y echa un vistazo a nuestras otras publicaciones relacionadas y populares que se mencionan a continuación.
Ejecutar macro cuando se realiza algún cambio en la hoja| Entonces, para ejecutar su macro cada vez que se actualiza la hoja, usamos los Eventos de la hoja de trabajo de VBA.
El código VBA más simple para resaltar la fila y columna actual usando| Utilice este pequeño fragmento de VBA para resaltar la fila y columna actuales de la hoja.
Los eventos de la hoja de trabajo en Excel VBA| El evento de la hoja de trabajo es realmente útil cuando desea que sus macros se ejecuten cuando ocurre un evento específico en la hoja.
Articulos populares:
50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.
La función BUSCARV en Excel | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.
CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico. La función Countif es esencial para preparar su tablero.
Cómo usar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.