Taula de continguts
Avui continuarem explorant les funcions d'Excel personalitzades. Com ja sabeu com crear UDF (i, espero, també heu provat d'aplicar-los al vostre Excel), aprofundim una mica més i aprengueu a utilitzar i emmagatzemar funcions definides per l'usuari a Excel.
A més, us mostrarem com desar fàcilment les vostres funcions en un fitxer de complement d'Excel per utilitzar-les més tard amb uns quants clics.
Així és de què parlarem:
Diferents maneres d'utilitzar UDF a Excel
Utilitzar UDF en fulls de treball
Un cop hàgiu verificat que els vostres UDF funcionen correctament, podeu utilitzar-los a Excel fórmules o en codi VBA.
Podeu aplicar funcions personalitzades en un llibre d'Excel de la mateixa manera que utilitzeu les funcions habituals. Per exemple, només cal que escriviu en una cel·la la fórmula següent:
= GetMaxBetween(A1:A6,10,50)
UDF es pot utilitzar en combinació amb funcions normals. Per exemple, afegiu text al valor màxim calculat:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Podeu veure el resultat a la captura de pantalla següent:
Vostè pot trobar el nombre que és màxim i està en l'interval de 10 a 50.
Comprovem una altra fórmula:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
La funció personalitzada GetMaxBetween comprova l'interval B2:B9 i troba el nombre màxim entre 10 i 50. A continuació, utilitzant INDEX + MATCH, obtenim el nom del producte que coincideix amb aquest valor màxim:
Com podeu veure, l'ús de funcions personalitzades no és massa diferent de l'Excel normalfuncions.
Quan feu això, recordeu que una funció definida per l'usuari només pot retornar un valor, però no pot realitzar cap altra acció. Obteniu més informació sobre les restriccions de les funcions definides per l'usuari.
Utilitzar UDF en procediments i funcions de VBA
Les UDF també es poden utilitzar a les macros de VBA. A continuació podeu veure el codi de macro que cerca el valor màxim en l'interval de 10 a 50 a la columna que conté la cel·la activa.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Cel·les(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cel·les(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 SubEl codi de macro conté la funció personalitzada
GetMaxBetween(.Cells, 10, 50)
És troba el valor màxim a la columna activa. Aquest valor es ressaltarà aleshores. Podeu veure el resultat de la macro a la captura de pantalla següent.
També es pot utilitzar una funció personalitzada dins d'una altra funció personalitzada. Abans al nostre bloc, vam analitzar el problema de convertir un número en text mitjançant la funció personalitzada anomenada SpellNumber .
Amb la seva ajuda, podem obtenir el valor màxim de l'interval i immediatament escriu-lo com a text.
Per fer-ho, crearem una nova funció personalitzada en la qual utilitzarem les funcions. GetMaxBetween i SpellNumber que ja ens són familiars.
Funció SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum)) End MaxNum) FuncióCom podeu veure, la funció GetMaxBetween és un argument d'una altra funció personalitzada, SpellNumber . Defineix el valor màxim, com hem fet moltes vegades abans. A continuació, aquest número es converteix en text.
A la captura de pantalla anterior, podeu veure com la funció SpellGetMaxBetween troba el nombre màxim entre 100 i 500 i aleshores el converteix en text.
Cridant UDF des d'altres llibres de treball
Si heu creat UDF al vostre llibre de treball, això, malauradament, no vol dir que no us trobareu cap problema.
Segons la meva experiència, la majoria dels usuaris tard o d'hora creen la seva col·lecció personal de macros i funcions personalitzades per automatitzar processos i càlculs individuals. I aquí sorgeix el problema: el codi de les funcions definides per l'usuari a Visual Basic s'ha d'emmagatzemar en algun lloc per poder utilitzar-lo més tard al treball.
Per aplicar la funció personalitzada, el llibre de treball on l'has desat ha d'estar obert. al teu Excel. Si no és així, obtindreu el #NOM! error en intentar utilitzar-lo. Aquest error indica que Excel no sap el nom de la funció que voleu utilitzar a la fórmula.
Fem una ullada a les maneres deque podeu utilitzar les funcions personalitzades que creeu.
Mètode 1. Afegiu el nom del llibre de treball a la funció
Podeu especificar el nom del llibre de treball on es troba abans del nom del funció. Per exemple, si heu desat una funció personalitzada GetMaxBetween() en un llibre de treball anomenat My_Functions.xlsm , heu d'introduir la fórmula següent:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Mètode 2. Emmagatzemeu totes les UDF en un fitxer comú
Deseu totes les funcions personalitzades en un llibre de treball especial (per exemple, My_Functions.xlsm ) i copieu-ne la funció desitjada a el llibre de treball actual, si cal.
Cada vegada que creeu una funció personalitzada nova, haureu de duplicar-ne el codi al llibre de treball en què l'utilitzareu. Amb aquest mètode, poden sorgir diversos inconvenients:
- Si hi ha molts fitxers de treball i la funció es necessita a tot arreu, s'haurà de copiar el codi a cada llibre.
- Recordeu desar el llibre de treball en un format habilitat per a macros (.xlsm o .xlsb).
- Quan obriu aquest fitxer, la protecció contra les macros mostrarà cada vegada un avís, que s'ha de confirmar. Molts usuaris s'espanten quan veuen un avís de barra groga que els demana que habilitin les macros. Per evitar veure aquest missatge, heu de desactivar completament la protecció d'Excel. Tanmateix, pot ser que això no sempre sigui correcte i segur.
Crec que estareu d'acord amb mi que tot el temps obre uni copiar-ne el codi de les funcions definides per l'usuari o escriure el nom d'aquest fitxer en una fórmula no és la millor solució. per tant, vam arribar a la tercera manera.
Mètode 3. Crear un fitxer de complement d'Excel
Crec que la millor manera és emmagatzemar les funcions personalitzades que s'utilitzen amb freqüència en un fitxer de complement d'Excel . Avantatges d'utilitzar el complement:
- Heu de connectar el complement a Excel només una vegada. Després d'això, podeu utilitzar els seus procediments i funcions en qualsevol fitxer d'aquest ordinador. No cal que deseu els vostres llibres de treball en formats .xlsm i .xlsb, ja que el codi font no s'emmagatzemarà en ells sinó al fitxer del complement.
- Ja no us molestarà la protecció de macros ja que els complements sempre fan referència a fonts de confiança.
- Un complement és un fitxer independent. És fàcil transferir-lo d'un ordinador a un altre, per compartir-lo amb els companys.
Parlarem més sobre la creació i l'ús d'un complement més endavant.
Utilitzar complements. ins per emmagatzemar funcions personalitzades
Com puc crear el meu propi complement? Anem a seguir aquest procés pas a pas.
Pas 1. Creeu el fitxer del complement
Obre Microsoft Excel, creeu un llibre de treball nou i deseu-lo amb qualsevol nom adequat (per exemple, My_Functions) en format de complement. Per fer-ho, utilitzeu el menú Fitxer - Desa com a o la tecla F12. Assegureu-vos d'especificar el tipus de fitxer Complement d'Excel :
El vostre complement tindrà l'extensió .xlam.
Consell. Si us plau, tingueu en compte quede manera predeterminada, Excel emmagatzema complements a la carpeta C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Us recomano que accepteu la ubicació predeterminada. Si voleu, podeu especificar qualsevol altra carpeta. Però aleshores, quan connecteu el complement, haureu de trobar i especificar la seva nova ubicació manualment. Si el deseu a la carpeta predeterminada, no cal que cerqueu el complement a l'ordinador. Excel el llistarà automàticament.
Pas 2. Connecteu el fitxer del complement
Ara el complement que hem creat s'ha de connectar a Excel. Aleshores es carregarà automàticament quan s'iniciï el programa. Per fer-ho, utilitzeu el menú Fitxer - Opcions - Complements . Assegureu-vos que Complements d'Excel estigui seleccionat al camp Gestiona . Feu clic al botó Vés a la part inferior de la finestra. A la finestra que apareix, marqueu el nostre complement My_Functions. Si no el veieu a la llista, feu clic al botó Examina i busqueu la ubicació del fitxer del complement.
Si utilitzeu un complement per emmagatzemar funcions personalitzades, hi ha una regla senzilla a seguir. Si esteu transferint el llibre de treball a una altra persona, assegureu-vos de transferir també una còpia del complement que contingui la funcionalitat que voleu. Haurien de connectar-lo de la mateixa manera que ho heu fet ara.
Pas 3. Afegiu funcions i macros personalitzades al complement
El nostre complement està connectat a Excel, però no no té cap funcionalitatencara. Per afegir-hi UDF noves, obriu l'Editor de Visual Basic prement Alt + F11 . A continuació, podeu afegir nous mòduls amb codi VBA tal com es descriu al meu tutorial Creació d'UDF.
Seleccioneu el fitxer de complement ( My_Finctions.xlam ) a la finestra VBAProject. Utilitzeu el menú Insereix - Mòdul per afegir un mòdul personalitzat. Heu d'escriure-hi funcions personalitzades.
Podeu escriure el codi d'una funció definida per l'usuari manualment o copiar-lo des d'algun lloc.
Això és tot. Ara heu creat el vostre propi complement, l'heu afegit a Excel i hi podeu utilitzar l'UDF. Si voleu utilitzar més UDF, només cal que escriviu el codi al mòdul de complements de l'editor VBA i deseu-lo.
Això és tot per avui. Hem après a utilitzar les funcions definides per l'usuari al vostre llibre de treball. Esperem que aquestes directrius us siguin útils. Si teniu cap pregunta, escriviu als comentaris d'aquest article.