Cómo utilizar INDEX MATCH con Excel VBA

  • Compartir Este
Hugh West

Puede utilizar las funciones integradas en las hojas de cálculo de Excel, como la función Función VLOOKUP El ELEGIR Función y el Función PMT De hecho, la mayoría de las aplicaciones de Excel se puede acceder a las funciones de la hoja de cálculo y utilizarlas en VBA código Como usar INDEX & MATCH Funciones de hoja de cálculo en el código VBA de Excel.

¿Por qué querría utilizar Excel Hoja de trabajo funciones en su VBA código Pues para ampliar la funcionalidad del código que estás utilizando. Además, no tienes que inventar tus propias funciones, a menos que realmente lo necesites, si la funcionalidad ya está ahí. Todo lo que necesitas hacer básicamente es acceder a la función que necesitas puesto que ya está ahí y entonces no hay necesidad de reinventar la rueda.

Empecemos con un ejemplo que muestra cómo utilizar INDEX MATCH con Excel VBA.

Vamos a utilizar el ÍNDICE y MATCH Funciones en Excel VBA código Mediante el formulario, el usuario selecciona el nombre del estudiante y, a continuación, se recupera y devuelve el sexo correspondiente de dicho estudiante y el color de ojos.

Descargar el cuaderno de prácticas

Descárguese el cuaderno de prácticas para practicar usted mismo.

INDEX-MATCH.xlsx

9 sencillos pasos para utilizar INDEX y MATCH en código VBA

En ÍNDICE y MATCH Las funciones se utilizan a menudo combinadas en fórmulas para realizar búsquedas avanzadas. La combinación de ambas ofrece ciertas ventajas sobre VLOOKUP .

Ya hemos explicado en detalle cómo utilizar ÍNDICE y MATCH para realizar búsquedas avanzadas en un Excel cuaderno de trabajo como una fórmula de hoja de cálculo directa, en un tutorial anterior Ahora vamos a ver cómo utilizar la función ÍNDICE y MATCH Funciones conjuntas en VBA código para conferir una funcionalidad similar a la búsqueda Formulario de usuario que vamos a crear.

Paso 1: Aplicar las funciones INDEX y MATCH al conjunto de datos

  • Empezaremos con dos hojas en nuestro libro de trabajo habilitado para macros. Una es una hoja vacía llamada Formulario de usuario y la otra es una hoja llamada Información del estudiante que contiene una gama que muestra nombres de los alumnos, su sexo correspondiente y el color de sus ojos como se muestra a continuación.

Recordemos rápidamente que si quisiéramos utilizar la función ÍNDICE y MATCH Funciones en una fórmula, en la propia hoja de cálculo para darnos el género del nombre del alumno que queremos buscar. Utilizaríamos la siguiente fórmula:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • Al pulsar CTRL-ENTRAR Obtenemos el valor de Females devuelto, como el género como se muestra a continuación.

Paso 2: Cambiar el nombre de la columna B por StudentNames

  • Ahora nombraremos el rango A2: A31 , NombresDeEstudiantes como se muestra a continuación.

  • Ocultar el Información del estudiante haciendo clic con el botón derecho del ratón y seleccionando Escóndete. Es una buena idea ocultar superficialmente las hojas de trabajo que contienen la información que no desea que el usuario edite o vea.

Paso 3: Abrir la ventana de Visual Basic

  • Ahora con la hoja UserForm activada, vamos a Desarrollador> Código> Visual Basic para abrir el Editor de Visual Basic (VBE) .
  • Una vez en el Interfaz VBE vamos a Insert, UserForm como se muestra a continuación.

Paso 4: Cambiar propiedades y añadir cuadros de texto

  • Utilización de la Propiedades Ventana cambiaremos el nombre de nuestro formulario a StudentLookup cambie el título a Buscar información del estudiante, cambie la opción Color de fondo a azul claro, y ajuste la altura a 300 px y la anchura a 350 px. Si no aparece la ventana de propiedades, pulse la tecla F4 de tu teclado para verlo.

  • Ahora insertaremos una etiqueta utilizando la función Caja de herramientas (si no puede ver la Caja de Herramientas, por alguna razón vaya a Ver, Caja de herramientas ), cambiaremos el título a Elegir un estudiante y cambiaremos el campo Color de fondo a blanco en este caso. Estableceremos la fuente a Georgia el estilo de fuente a negrita el tamaño de letra a 12 y el centro alinear el texto. El efecto especial utilizado será el 1- fmEfectoEspecialSubido como se muestra a continuación.

  • Ahora vamos a insertar un cuadro combinado debajo de la etiqueta. Nombre este cuadro combinado cmdNombreEstudiante y para la etiqueta RowSource Tipo StudentNames.

  • Para ver el efecto de fijar el RowSource del cuadro combinado, Haga clic en la Carrera Sub/UserForm botón .
  • Ahora, al establecer el RowSource al intervalo designado, cuando el usuario haga clic en la flecha desplegable del formulario de usuario, el cuadro combinado mostrará automáticamente los nombres de los alumnos del intervalo designado, como se muestra a continuación.

  • Cierre el formulario de usuario pulsando el botón Cerrar. Pulse Alt-F11 para volver al VBE .
  • Una vez de vuelta en el VBE añada otra etiqueta al formulario de usuario (debajo del cuadro combinado) y cambie la etiqueta Leyenda a Género y cambiaremos el Color de fondo a blanco en este caso. Estableceremos la fuente a Georgia el estilo de fuente a negrita el tamaño de letra a 12 y el centro alinear el texto. El efecto especial utilizado será el 1- fmEfectoEspecialSubido como se muestra a continuación.

  • Cree un cuadro de texto debajo del Género etiqueta y nómbralo txtGénero .
  • Añadir otra etiqueta llamada Ojo Color y un cuadro de texto llamado txtEyeColour como se muestra a continuación. Utilice las mismas propiedades para la etiqueta que para las otras dos etiquetas añadidas anteriormente al formulario, con el fin de garantizar que la etiqueta Formulario de usuario tiene un aspecto coherente.

  • Ahora Seleccione todos los controles, añadidos al Formulario de usuario hasta ahora usando la tecla de control.

  • Centro horizontalmente, como se muestra a continuación.

Más información: Cómo utilizar la fórmula INDEX MATCH en Excel (9 ejemplos)

Lecturas similares

  • Excel INDEX MATCH Si Celda Contiene Texto
  • Cómo utilizar la fórmula INDEX-MATCH en Excel para generar múltiples resultados
  • Indexar la Suma de Varias Filas en Excel (3 Formas)
  • Aprenda Excel VBA Programación & Macros (Tutorial Gratis - Paso a Paso)
  • 22 Ejemplos de macros en Excel VBA

Paso 5: Añadir un botón desde la caja de herramientas

  • Siguiente, Añadir un botón al formulario mediante la función Caja de herramientas . Cambia el Nombre del botón para cmdLookUp El Color de fondo a naranja claro, mantenga el Tahoma fuente y cambiar el estilo a negrita por último, cambie el Leyenda del botón para Mira arriba Estudiante Detalles como se muestra a continuación.

Paso 6: Insertar código VBA

  • Haga clic con el botón derecho del ratón en el botón recién añadido, y seleccione Ver Código .

  • Introduzca el siguiente código para el evento de clic del botón:

 Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If 

Empezamos declarando tres variables y asignando el tipo de datos variante a estos tipos de datos variantes declarados. El tipo de datos variante es un buen tipo de datos para empezar. Porque cuando se trabaja con hoja de trabajo funciones Por lo tanto, utilice el tipo de datos variante cuando esté empezando.

Más adelante, es aconsejable utilizar uno de los otros tipos de datos más específicos como entero o cadena. Para un código más largo y avanzado, el tipo de datos variante no utiliza la memoria tan eficientemente como los otros tipos de datos.

Variable a extraer el valor de la opción que el usuario seleccione en el cuadro desplegable de la pantalla Formulario de usuario Si no hay selección, todas las demás casillas de texto son vacío .

Si selecciona el nombre de un alumno de la lista combo caja en el Formulario de usuario, entonces la variable b toma valor utilizando el ÍNDICE Hoja de trabajo en combinación con la función MATCH Función en el VBA como se muestra.

Busca el valor utilizando básicamente la misma sintaxis que la función de la hoja de cálculo. Cuando se utilizan funciones de la hoja de cálculo en VBA El VBA IntelliSense en este caso concreto no es muy intuitivo por lo que se recomienda familiarizarse con la sintaxis obtenida a partir del conocimiento de las hojas de cálculo. Variable c extrae el valor utilizando el ÍNDICE Hoja de trabajo Función en combinación con el MATCH Función en el VBA cuando el usuario selecciona una opción del cuadro combinado.

Variable b obtiene valor del género columna en la hoja de cálculo, mientras que variable c obtiene el valor de la columna Color de ojos de la hoja de cálculo.

El cuadro de texto de género se rellena con b y el cuadro de texto de color de ojos se rellena con c .

Más información: Eventos VBA de Excel (Una guía completa)

Paso 7: Insertar un botón de comando

  • Ahora vaya a la hoja de cálculo denominada Formulario de usuario en tu cuaderno de trabajo. Formato como se muestra a continuación, y insertar la imagen proporcionada por ExcelWIKI .

  • Ir a Desarrollador> Controles> Insertar> Controles ActiveX.

  • Inserte un botón como se muestra.

  • Con el botón seleccionado, ir a Desarrollador> Controles> Propiedades .

  • Cambia el Nombre del botón para cmdShowForm y el Leyenda a Búsqueda Información para estudiantes .

Paso 8: Ver código de búsqueda

  • Haga clic con el botón derecho del ratón en el botón y seleccione Ver Código como se muestra a continuación.

  • Introduce el siguiente código:
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

Paso 9: Exponer el resultado final

  • Devolución a la hoja de trabajo. Asegúrese de que la casilla Diseño Modo .
  • Haga clic en el botón para mostrar el formulario.

  • Seleccione el nombre de un alumno utilizando el cuadro combinado El código devolverá automáticamente el sexo y el color de ojos del alumno.

Recuerde guardar su libro de trabajo como libro de trabajo habilitado para macros si aún no lo ha hecho y ahí lo tiene, utilizamos INDEX & MATCH Funciones de hoja de cálculo en el código VBA de Excel para crear un formulario de búsqueda.

Más información: Excel INDEX-MATCH Fórmula para Devolver Múltiples Valores Horizontalmente

Conclusión

Excel tiene muchas funciones de la hoja de cálculo que puede utilizarse en VBA como, como, usando INDEX & MATCH Funciones de hoja de cálculo en el código VBA de Excel. Estas funciones le permitirán ampliar su VBA código. Si ya sabe cómo funcionan en una norma Excel entonces la curva de aprendizaje no es tan grande adaptando los conocimientos para VBA Acceder a las funciones de la hoja de cálculo, en el propio VBA código porque no hay que desarrollar funciones personalizadas para una funcionalidad que ya existe.

No dude en comentar y decirnos si utiliza funciones de hoja de cálculo en su código VBA y aplicaciones.

Sección de repaso: Compruebe su comprensión

1) Configure una lista simple en la columna A de tres elementos: mandarinas, zanahorias y naranjas. A continuación, en la celda situada junto a cada elemento de la columna B, indique si los elementos de la columna A son frutas o verduras. ÍNDICE & MATCH función de combinación para entregar si las zanahorias son frutas o verduras.

2) Utilice este conjunto de datos de ESPN sobre los entrenadores principales de la NFL y el equipo al que entrenan. Cree un formulario de usuario que permita al usuario introducir el nombre de un entrenador determinado en un cuadro de texto. A continuación, haga que el equipo al que entrena aparezca en otro cuadro de texto cuando el usuario haga clic en enviar. Utilice ÍNDICE & MATCH combinación de funciones de hoja de cálculo dentro de su código VBA.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.