Como usar INDEX MATCH con Excel VBA

  • Comparte Isto
Hugh West

Podes utilizar as funcións integradas da folla de cálculo de Excel, como a Función BUSCAR V , a Función ESCOLLER e a Función PMT no teu código e aplicacións VBA así como. De feito, a maioría das funcións da folla de traballo de Excel pódense acceder e usar no código VBA . Gústalle usar INDEX & MATCH Funcións da folla de traballo no código VBA de Excel.

Por que queres usar as funcións Excel Folla de traballo no teu VBA código ? Pois para ampliar a funcionalidade do código que estás a usar. Ademais, non tes que crear as túas propias funcións, a non ser que realmente o precises, se a funcionalidade xa está aí. Basicamente, o único que tes que facer é acceder á función que necesitas, xa que xa está aí e non hai que reinventar a roda.

Entón, imos comezar cun exemplo que mostra como usar INDEX  MATCH. con Excel VBA.

Imos utilizar as funcións INDEX e MATCH en Excel VBA código , para crear un formulario de usuario simple. Usando o formulario, o usuario selecciona un nome do alumno e, a continuación, obtén e devólvese o sexo correspondente e a cor dos ollos.

Descargar o libro de prácticas

Descargue o libro de prácticas para practique a si mesmo.

INDEX-MATCH.xlsx

9 pasos sinxelos para usar INDEX e MATCH dentro do código VBA

O ÍNDICE e COINCIDENCIA As funcións úsanse a miúdo en combinación nas fórmulas, para realizar buscas avanzadas. Os dous combinados ofrecen certas vantaxes sobre VLOOKUP .

Xa explicamos en detalle como usar INDEX e MATCH para realizar funcións avanzadas. busca nun Excel caderno de traballo como unha fórmula de folla de traballo directa, nun titorial anterior . Agora imos ver como usar as funcións INDEX e MATCH xuntos no VBA code , para conferir unha funcionalidade similar a a busca Formulario de usuario que imos crear.

Paso 1: Aplicar as funcións INDEX e MATCH no conxunto de datos

  • Estamos comezando con dúas follas na nosa macro -caderno de traballo habilitado. Unha é unha folla baleira chamada Formulario de usuario , a outra é unha folla chamada Información do alumno , que contén un intervalo que mostra os nomes dos estudantes, o seu xénero correspondente e a cor dos ollos como que se mostra a continuación.

Lembremos axiña se queriamos usar o INDICE e MATCH Funcións nunha soa fórmula, na folla de traballo real para darnos o xénero do nome do alumno que queremos buscar. Usaríamos a seguinte fórmula:

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

  • Ao premer CTRL-ENTER , obtemos o valor de Femininas devolto, como o xénero como se mostra a continuación.

Paso 2: Cambia o nome da columna B a StudentNames

  • Agora nomearemos o intervalo A2: A31 , StudentNames como se mostra a continuación.

  • Ocultar a folla Información do alumno facendo clic co botón dereito do rato e seleccionando Ocultar. É unha boa idea ocultar superficialmente as follas de traballo de fondo que conteñen a información, que non queres que o usuario edite nin vexa.

Paso 3: Abre a xanela de Visual Basic

  • Agora coa folla UserForm activada, imos a Desenvolvedor > Código > Visual Basic para abrir o Editor de Visual Basic (VBE) .
  • Unha vez na interface VBE , imos a Inserir, Formulario de usuario como se mostra a continuación .

Paso 4: cambiar as propiedades e engadir caixas de texto

  • Uso da xanela Propiedades , cambiaremos o nome do noso formulario a StudentLookup , cambiaremos o título a Buscar información do alumno, cambiaremos a BackColor a azul claro e estableceremos a altura en 300 px e o ancho de 350 px. Se a xanela de propiedades non aparece, preme a tecla F4 do teu teclado para vela.

  • Nós agora inserirá unha etiqueta usando a Caixa de ferramentas (se non podes ver a Caixa de ferramentas, por algún motivo vai a Ver, Caixa de ferramentas ), cambia o Título a Escolle un alumno e cambiaremos o BackColor a branco neste caso. Estableceremos o tipo de letra en Xeorxia , o estilo de letra en negriña , o tamaño de fonte a 12 eo centro aliña o texto. O efecto especial utilizado será o 1– fmSpecialEffectRaised como se mostra a continuación.

  • Agora inseriremos un cadro combinado debaixo do etiqueta. Nomea esta caixa combinada cmdStudentName e para RowSource , escriba StudentNames.

  • Para ver o efecto de configurar a Fonte da fila do cadro combinado, Fai clic no botón Executar Sub/Formulario de usuario .
  • Agora debido á configuración do RowSource ao intervalo nomeado, cando o usuario fai clic na frecha despregable do formulario de usuario, a caixa combinada mostra os nomes dos estudantes do rango nomeado, automaticamente como se mostra a continuación.

  • Pecha o formulario de usuario facendo clic no botón pechar. Preme Alt-F11 para volver ao VBE .
  • Unha vez de novo no VBE , engade outra etiqueta ao formulario de usuario ( debaixo do cadro combinado) e cambie o Caption a Xénero e cambiaremos a BackColor a branco neste caso. Estableceremos o tipo de letra en Xeorxia , o estilo de fonte en negriña , o tamaño da fonte a 12 e o centro aliñaremos o texto . O efecto especial utilizado será o 1– fmSpecialEffectRaised como se mostra a continuación.

  • Crear unha caixa de texto debaixo da Xénero etiqueta e ponlle o nome txtGender .
  • Engade outra etiqueta chamada Ollo Cor e unha caixa de texto nomeada txtEyeColour como se mostra a continuación. Utiliza as mesmas propiedades para a etiqueta que para as outras dúas etiquetas engadidas anteriormente ao formulario, para garantir que o Formulario de usuario teña un aspecto coherente.

  • Agora Seleccione todos os controis, engadidos ao Formulario de usuario , ata agora usando a tecla de control.

  • Centra horizontalmente, como se mostra a continuación.

Ler Máis: Como usar a fórmula INDEX MATCH en Excel (9 exemplos)

Lecturas similares

  • Excel COINCIDENCIA DE ÍNDICE Se a cela contén texto
  • Como usar a fórmula de COINCIDENCIA DE ÍNDICE en Excel para xerar varios resultados
  • Coincidencia de índice Suma varias filas en Excel (3 xeitos)
  • Aprende a programación e amp; Macros (Tutorial gratuíto - Paso a paso)
  • 22 Exemplos de macros en Excel VBA

Paso 5: Engade un botón da Caixa de ferramentas

  • A continuación, Engade un botón ao formulario mediante a Caixa de ferramentas . Cambia o Nome do botón a cmdLookUp , a BackColor a laranxa clara, mantén o tipo de letra Tahoma e cambia o estilo a negriña , finalmente cambia o Petición do botón a Mirar arriba Estudante Detalles como se mostra a continuación.

Paso 6: Insira o código VBA

  • Fai clic co botón dereito do rato en , o botón recén engadido e seleccione Ver Código .

  • Introduza o seguinte código para o botón evento clic:

9340

Comezamos declarando tres variables e asignando o tipo de datos variante a estas declaradas tipos de datos variantes. O tipo de datos variante é un bo tipo de datos para comezar. Porque ao traballar con folla de traballo funcións , é posible que non sempre estea seguro das saídas. Polo tanto, use o tipo de datos variante, cando estea comezando.

Máis adiante, é recomendable utilizar un dos outros tipos de datos máis específicos como integer ou cadea. Para un código máis avanzado e máis longo, o tipo de datos variante non usa a memoria de forma tan eficiente como os outros tipos de datos.

A variable a debuxa o valor da opción que selecciona o usuario na caixa combinada despregable no Formulario de usuario . Se non hai ningunha selección, todas as outras caixas de texto están baleiras .

Se selecciona un nome de alumno no cadro combinado do Formulario de usuario, , a continuación, a variable b debuxa o valor mediante a función INDEX Folla de traballo en combinación coa función COINCER Función en o código VBA , como se mostra.

Busca o valor usando basicamente a mesma sintaxe que a función da folla de cálculo. Cando se usan funcións de folla de cálculo en VBA , o VBA IntelliSense neste caso particular non é moi intuitivo , polo que está familiarizado conrecoméndase a sintaxe recollida do coñecemento da folla de traballo. A variable c debuxa o valor mediante a INDEX Folla de traballo Función en combinación coa COINCIDENCIA Función no código VBA cando o usuario selecciona unha opción da caixa combinada.

A variable b obtén o valor do xénero columna na folla de traballo, mentres que a variable c obtén o valor da columna Cor de ollos da folla de traballo.

A caixa de texto de xénero está encheda con b valor e a caixa de texto da cor dos ollos enchégase co valor de c .

Ler máis: Eventos de Excel VBA (unha directriz completa)

Paso 7: Insira un botón de comando

  • Agora vai á folla de traballo chamada Formulario de usuario no teu libro de traballo. Dá formato , como se mostra a continuación e insire a imaxe proporcionada por ExcelWIKI .

  • Ir a Desenvolvedor > Controis > Inserir > Controis ActiveX.

  • Inserir un botón como se mostra.

  • Co botón seleccionado, vai a Desenvolvedor > Controis > Propiedades .

  • Cambia o Nome do botón a cmdShowForm e os Petición a Buscar Información do alumno .

Paso 8: Ver Código de busca

  • Prema co botón dereito no botón e seleccione Ver código como se mostraa continuación.

  • Introduza o seguinte código:
6821

Paso 9: Mostra o resultado final

  • Volve á folla de traballo. Asegúrate de que o Deseño Modo non está marcado.
  • Fai clic no botón para mostrar o formulario.

  • Seleccione o nome dun alumno mediante o cadro combinado . O código devolverá automaticamente o sexo e a cor dos ollos do alumno.

Lembra gardar o teu libro de traballo como un libro habilitado para macros , se aínda non o fixeches e xa o tes, utilizamos INDEX & MATCH Funcións da folla de traballo no código VBA de Excel para crear un formulario de busca.

Ler máis: Excel INDEX-MATCH Fórmula para devolver varios valores horizontalmente

Conclusión

Excel ten moitas funcións de folla de traballo útiles, que se poden utilizar en VBA , como usar INDEX & MATCH Funcións da folla de traballo no código VBA de Excel. Estas funcións permítenche ampliar o teu código VBA . Se xa sabes como funcionan nun Excel<2 estándar> folla de traballo, entón a curva de aprendizaxe non é tan grande ao adaptar o coñecemento para VBA . Acceder ás funcións da folla de traballo no VBA código pode ser un aforro de tempo real. Porque non hai que desenvolver funcións personalizadas para a funcionalidade que xa está aí.

Por favor, non dubide en comentar e dicirse utiliza funcións da folla de traballo no seu código e aplicacións VBA.

Sección de revisión: proba a súa comprensión

1) Configure unha lista sinxela na columna A de tres elementos, a saber, mandarinas, cenorias e laranxas. , a continuación, na cela situada ao lado de cada elemento da columna B, indique se os elementos da columna A son froitas ou vexetais, unha vez que finalice a configuración dos datos de mostra, use o INDICE & Función de combinación MATCH para ofrecer se as cenorias son froitas ou vexetais.

2) Usa este conxunto de datos de ESPN nos adestradores da NFL e no equipo respectivo ao que adestran. Crea un formulario de usuario que permita a un usuario introducir o nome dun adestrador determinado nunha caixa de texto. A continuación, fai que o equipo que adestra noutro cadro de texto cando o usuario faga clic en enviar. Use INDEX & Combinación de funcións da folla de traballo MATCH dentro do teu código VBA.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.