Excel VBA Intersect

Intersección de VBA en matemáticas o en geometría significa cuando dos o más líneas o áreas se cruzan entre sí. El punto o área común creada después de eso se llama punto o área de intersección. En Excel también podemos resaltar y medir el área de intersección.

Sintaxis de la función de intersección en Excel VBA

La función de intersección tiene la siguiente sintaxis en Excel VBA:

Como podemos ver, se mencionan Arg1 y Arg2, Rango. Y el resto de los argumentos están entre paréntesis. Lo que significa que los dos primeros argumentos deben seleccionarse como Rango. O en otras palabras, se deben incluir un mínimo de 2 áreas para encontrar Intersect. El resto de los argumentos pueden seleccionarse como Rango o puede incluir algunas otras cosas o parámetros, así como por necesidad. Esta sintaxis puede acomodar un máximo de 30 argumentos.

¿Cómo utilizar la función de intersección de Excel VBA?

Aprenderemos cómo usar una función de intersección de VBA con algunos ejemplos en Excel.

Puede descargar esta plantilla de VBA Intersect Excel aquí - Plantilla de VBA Intersect Excel

VBA Intersect - Ejemplo # 1

En el primer ejemplo, resaltaremos y crearemos el área de Intersección cuando tengamos algún conjunto de datos. Para esto, tenemos datos de muestra que tienen 3 columnas llenas de números como se muestra a continuación.

Ahora necesitamos encontrar el área de intersección de una tabla de datos anterior usando VBA Intersect. Para esto, siga los pasos a continuación:

Paso 1: vaya a la ventana de VBA y abra un Módulo desde la opción de menú Insertar como se muestra a continuación.

Obtendremos una ventana en blanco del módulo.

Paso 2: Ahora escriba Subcategoría de VBA Intersect o en cualquier otro nombre según su elección.

Código:

 Sub VBAIntersect1 () End Sub 

Paso 3: Ahora inserte directamente el comando Intersecar como se muestra a continuación.

Código:

 Sub VBAIntersect1 () Intersect (End Sub 

Como ya explicamos la sintaxis detallada de Intersect, agregaremos un área de intersección. Podemos elegir un número N de rangos, pero debe haber un mínimo de dos rangos.

Consideremos a continuación un área de intersección donde la primera área es de A1 a B8, la segunda área es B3 a C12 y la tercera área es A7 a C10. Podemos considerar y elegir cualquier combinación de un patrón de intersecciones.

Ahora veamos en qué punto (s) estas áreas se encuentran e intersectan entre sí. El área común creada por todas las áreas anteriores será nuestra área de intersección.

Paso 4: ahora en el módulo de intersección de VBA, seleccione el primer rango de área como se muestra a continuación.

Código:

 Sub VBA Intersect1 () Intersect (Range ("A1: B8") End Sub 

Hemos agregado el primer rango, pero nuestra sintaxis aún está incompleta.

Paso 5: Ahora inserte el resto de las dos áreas que hemos discutido anteriormente separadas por comas.

Código:

 Sub VBA Intersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) End Sub 

Paso 6: Ahora indique la condición como "Verdadero".

Código:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) = True End Sub 

Esto completa nuestro código.

Paso 7: Ahora compile el código y ejecútelo haciendo clic en el botón Reproducir que se encuentra debajo de la barra de menú como se muestra a continuación.

Obtendremos el área común o el área intersectada que tiene el valor VERDADERO como se muestra arriba. Aunque obtuvimos el área de intersección, ese VERDADERO ha reemplazado los datos que estaban allí en el área de intersección.

Paso 8: Ahora para evitar perder esto, podemos cambiar el fondo de color, esas celdas comunes a cualquier color de nuestra elección. Para esto, después de la sintaxis de Intersect, use la función Interior junto con Color como se muestra a continuación.

Código:

 Sub VBA Intersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = End Sub 

Paso 9: ahora en VBA, no podemos usar el nombre del color que queremos usar directamente. Para esto, necesitamos agregar " vb " que se utiliza para activar los colores disponibles en VBA. Ahora úselo y agregue cualquier nombre del color de su elección. Estamos seleccionando Verde aquí como se muestra a continuación.

Código:

 Sub VBA Intersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = vbGreen End Sub 

Paso 10: Ahora compile nuevamente el código escrito de una vez ya que el código es bastante pequeño y ejecútelo.

Veremos que el color del área intersectada cambia a Verde y área común que se crea por la intersección de 3 áreas diferentes en B7 a B8.

VBA Intersect - Example # 2

Hay otra forma diferente pero muy diferente de usar VBA Intersect. Esta vez usamos intersección en una hoja de trabajo específica. En Sheet2 hemos marcado un área de B4 a E8 como se muestra a continuación.

Siga los pasos a continuación:

Paso 1: en VBA, vaya a la Hoja2 del Libro de trabajo actual como se muestra a continuación.

Paso 2: Ahora seleccione la Hoja de trabajo de esta primera opción desplegable. Esto permitirá que el código se use solo en esta hoja actual.

Paso 3: Y desde el segundo menú desplegable, seleccione la opción Cambiar como se muestra a continuación. Esto se utiliza para apuntar a los cambios realizados en el rango seleccionado.

Paso 4: solo escribiremos nuestro código en la primera subcategoría.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) End Sub 

Paso 5: Utilizaremos el bucle If-Else para formar una condición para la función de intersección.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) If End End End End Sub 

Paso 6: Primero seleccione el rango objetivo de B4 a E8 como se muestra a continuación. Esto apuntará a la intersección del área cubierta en B4 a E8 principalmente.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) End If End Sub 

Paso 7: Y si no hay nada en el área de destino, entonces debemos escribir una declaración que redirija el código más adelante.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) es Nothing entonces End If End Sub 

Paso 8: Y si realmente el objetivo está fuera de alcance, podemos usar un cuadro de mensaje con un mensaje de alerta como se muestra a continuación.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) Is Nothing Nothing MsgBox "Out of Range" End If End Sub 

Paso 9: Y en la declaración Else donde hay algo escrito dentro del cuadro, entonces deberíamos recibir un mensaje rápido si el contenido escrito está dentro del cuadro como se muestra a continuación.

Código:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) Is Nothing Nothing MsgBox "Out of Range" Else MsgBox "Dentro de Range" End If End Sub 

Paso 10: Ahora compile cada paso del código escrito y cierre la hoja de trabajo de VBA. Como hemos escrito el código específico de la hoja, funcionará de la misma manera.

Paso 11: Ahora escribe algo dentro del cuadro.

Como podemos ver, escribimos 2 en la celda C5 dentro del cuadro, recibimos el mensaje o “ Dentro del rango ”.

Paso 12: De nuevo, escribe algo fuera de la caja. Escribimos 1 en la celda B10 y recibimos el mensaje "Fuera de rango" como se muestra a continuación.

Esta es otra forma de usar Intersect en Excel VBA.

Pros de Excel VBA Intersect

  • Es muy fácil al menos resaltar el área que se cruza por el proceso del ejemplo-1.
  • Esto es muy útil cuando necesitamos filtrar o trabajar en ese tipo de datos que tienen intersección desde un área diferente como Fechas, Propietario, etc.

Cosas para recordar

  • Recuerde guardar el archivo en formato Macro Enable Excel, para que el código funcione en cada uso.
  • Al escribir el código en la Hoja en lugar del módulo como se muestra en el ejemplo 2, haga que el código sea aplicable solo para esa hoja. Ese código no funcionará en ninguna otra hoja.
  • Usar Target Range como se muestra en el ejemplo-2 es útil para especificar el área a golpear.

Artículos recomendados

Esta es una guía de VBA Intersect. Aquí discutimos cómo usar Excel VBA Intersect Function junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Ejemplos en bucles VBA
  2. Excel COLUMNA a Número
  3. VBA hacer hasta bucle
  4. Crear un presupuesto en Excel

Categoría: