Táboa de contidos
Hoxe continuaremos explorando funcións personalizadas de Excel. Como xa sabes como crear UDF (e, espero, tamén probaches aplicalos no teu Excel), profundicemos un pouco máis e aprendamos a usar e almacenar funcións definidas polo usuario en Excel.
Ademais, mostrarémosche como gardar facilmente as túas funcións nun ficheiro de complemento de Excel para usalas máis tarde nuns poucos clics.
Entón, isto é o que imos falar:
Diferentes formas de usar UDF en Excel
Utilizar UDF en follas de traballo
Unha vez verificado que as súas UDF funcionan correctamente, pode usalas en Excel fórmulas ou en código VBA.
Podes aplicar funcións personalizadas nun libro de Excel do mesmo xeito que usas funcións habituais. Por exemplo, só tes que escribir nunha cela a fórmula seguinte:
= GetMaxBetween(A1:A6,10,50)
UDF pódese usar en combinación con funcións habituais. Por exemplo, engade texto ao valor máximo calculado:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Podes ver o resultado na seguinte captura de pantalla:
Ti pode atopar o número que é máximo e está no intervalo de 10 a 50.
Comprobamos outra fórmula:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
A función personalizada GetMaxBetween comproba o rango B2:B9 e atopa o número máximo entre 10 e 50. Despois, usando INDEX + MATCH, obtemos o nome do produto que coincide con este valor máximo:
Como podes ver, o uso das funcións personalizadas non é moi diferente do Excel normalfuncións.
Ao facer isto, lembre que unha función definida polo usuario só pode devolver un valor, pero non pode realizar outras accións. Lea máis sobre as restricións das funcións definidas polo usuario.
Usar UDF en procedementos e funcións VBA
Os UDF tamén se poden usar nas macros VBA. A continuación podes ver o código de macro que busca o valor máximo no intervalo de 10 a 50 na columna que contén a cela activa.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Celdas (ActiveCell.CurrentRegion.Row, ActiveCell.Column), Celdas (ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubO código da macro contén a función personalizada
GetMaxBetween(.Cells, 10, 50)
É atopa o valor máximo na columna activa. Este valor resaltarase entón. Podes ver o resultado da macro na captura de pantalla que aparece a continuación.
Unha función personalizada tamén se pode usar dentro doutra función personalizada. Anteriormente no noso blog, analizamos o problema de converter un número en texto mediante a función personalizada chamada SpellNumber .
Coa súa axuda, podemos obter o valor máximo do intervalo e inmediatamente anótao como texto.
Para facelo, crearemos unha nova función personalizada na que usaremos as funcións GetMaxBetween e SpellNumber que xa nos son familiares.
Función SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum)) FunciónComo podes ver, a función GetMaxBetween é un argumento para outra función personalizada, SpellNumber . Define o valor máximo, como xa fixemos moitas veces antes. Despois, este número convértese en texto.
Na captura de pantalla anterior, podes ver como a función SpellGetMaxBetween atopa o número máximo entre 100 e 500 e despois convérteo en texto.
Chamar a UDF desde outros libros de traballo
Se creou UDF no seu libro de traballo, isto, desafortunadamente, non significa que non teña ningún problema.
Na miña experiencia, a maioría dos usuarios crean tarde ou cedo a súa colección persoal de macros e funcións personalizadas para automatizar procesos e cálculos individuais. E aquí xorde o problema: o código das funcións definidas polo usuario en Visual Basic debe almacenarse nalgún lugar para poder ser usado máis tarde no traballo.
Para aplicar a función personalizada, o libro de traballo onde a gardou debe estar aberto. no teu Excel. Se non o é, obterás o #NOME! erro ao tentar usalo. Este erro indica que Excel non coñece o nome da función que quere utilizar na fórmula.
Vexamos as formas deque pode usar as funcións personalizadas que cree.
Método 1. Engade o nome do libro de traballo á función
Pode especificar o nome do libro de traballo no que se atopa antes do nome do función. Por exemplo, se gardou unha función personalizada GetMaxBetween() nun libro de traballo chamado My_Functions.xlsm , debe introducir a seguinte fórmula:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Método 2. Almacene todas as UDF nun ficheiro común
Garde todas as funcións personalizadas nun libro especial (por exemplo, My_Functions.xlsm ) e copie a función desexada o caderno de traballo actual, se é necesario.
Cada vez que cree unha nova función personalizada, cómpre duplicar o seu código no caderno de traballo no que a utilizará. Con este método, poden xurdir varios inconvenientes:
- Se hai moitos ficheiros de traballo e a función é necesaria en todas partes, entón o código terá que ser copiado en cada libro.
- Lembre gardar o libro de traballo nun formato habilitado para macros (.xlsm ou .xlsb).
- Ao abrir un ficheiro deste tipo, a protección contra macros mostrará cada vez un aviso, que debe confirmarse. Moitos usuarios asústanse cando ven un aviso de barra amarela que lles pide que habiliten as macros. Para evitar ver esta mensaxe, cómpre desactivar completamente a protección de Excel. Non obstante, isto pode non ser sempre correcto e seguro.
Creo que estarás de acordo comigo en que todo o tempo abre une copiar o código das funcións definidas polo usuario a partir del ou escribir o nome deste ficheiro nunha fórmula non é a mellor solución. así, chegamos á terceira vía.
Método 3. Crear un ficheiro de complemento de Excel
Creo que a mellor forma é almacenar as funcións personalizadas de uso frecuente nun ficheiro de complemento de Excel . Vantaxes de usar o complemento:
- Cómpre conectar o complemento a Excel só unha vez. Despois diso, pode usar os seus procedementos e funcións en calquera ficheiro deste ordenador. Non precisa gardar os seus libros de traballo en formatos .xlsm e .xlsb xa que o código fonte non se almacenará neles senón no ficheiro de complemento.
- Xa non che molestará a protección de macros xa que os complementos sempre fan referencia a fontes de confianza.
- Un complemento é un ficheiro separado. É doado transferilo dun ordenador a outro, para compartilo cos compañeiros.
Falaremos máis sobre a creación e o uso dun complemento máis tarde.
Uso do complemento. ins para almacenar funcións personalizadas
Como creo o meu propio complemento? Imos seguir este proceso paso a paso.
Paso 1. Crea o ficheiro de complemento
Abre Microsoft Excel, crea un novo libro de traballo e gárdao con calquera nome axeitado (por exemplo, My_Functions) en formato de complemento. Para iso, use o menú Ficheiro - Gardar como ou a tecla F12. Asegúrate de especificar o tipo de ficheiro Complemento de Excel :
O teu complemento terá a extensión .xlam.
Consello. Por favor, teña en conta quede forma predeterminada, Excel almacena complementos no cartafol C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Recomendo que aceptes a localización predeterminada. Se queres, podes especificar calquera outro cartafol. Pero despois, ao conectar o complemento, terás que buscar e especificar a súa nova localización manualmente. Se o gardas no cartafol predeterminado, non tes que buscar o complemento no teu ordenador. Excel listarao automaticamente.
Paso 2. Conecta o ficheiro de complemento
Agora o complemento que creamos debe estar conectado a Excel. Despois, cargarase automaticamente cando se inicie o programa. Para iso, use o menú Ficheiro - Opcións - Complementos . Asegúrate de que Complementos de Excel estea seleccionado no campo Xestionar . Fai clic no botón Ir na parte inferior da xanela. Na xanela que aparece, marca o noso complemento My_Functions. Se non o ves na lista, fai clic no botón Examinar e busca a localización do teu ficheiro de complemento.
Se están a usar un complemento para almacenar funcións personalizadas, hai unha regra sinxela a seguir. Se estás a transferir o libro de traballo a outra persoa, asegúrate de transferir tamén unha copia do complemento que conteña a funcionalidade que queres. Deberían conectalo do mesmo xeito que o fixeches agora.
Paso 3. Engade funcións e macros personalizadas ao complemento
O noso complemento está conectado a Excel, pero non non ten ningunha funcionalidadeaínda. Para engadirlle novos UDF, abra o Editor de Visual Basic premendo Alt + F11 . A continuación, pode engadir novos módulos con código VBA como se describe no meu tutorial Crear UDF.
Seleccione o ficheiro de complemento ( My_Finctions.xlam ) en a xanela VBAProject. Use o menú Inserir - Módulo para engadir un módulo personalizado. Debes escribir nela funcións personalizadas.
Podes escribir manualmente o código dunha función definida polo usuario ou copialo desde algún lugar.
Isto é todo. Agora creaches o teu propio complemento, engadiuno a Excel e podes usar o UDF nel. Se queres usar máis UDF, só tes que escribir o código no módulo de complemento do editor VBA e gárdao.
Isto é todo por hoxe. Aprendemos a utilizar as funcións definidas polo usuario no teu libro de traballo. Agardamos que che resulten útiles estas directrices. Se tes algunha dúbida, escribe nos comentarios deste artigo.