Zelfs wanneer Excel heeft veel, waarschijnlijk honderden, van ingebouwde functies zoals SUM, VERT.ZOEKEN, LEFT, en ga zo maar door, als je eenmaal begint met behulp van Excel voor meer gecompliceerde taken, zul je vaak merken dat je een functie die niet bestaat behoefte. Maak je geen zorgen, je bent niet verloren bij allen, alles wat je nodig hebt is om de functie zelf maakt.
Stappen
- 1Maak een nieuwe werkmap of open de werkmap waarin u wilt uw nieuw aangemaakte gebruiker gedefinieerde functie (UDF) te gebruiken.
- 2Open de Visual Basic editor die is ingebouwd in Microsoft Excel door naar Extra-> Macro-> Visual Basic Editor (of door op Alt + F11).
- 3Voeg een nieuwe module aan de werkmap door te klikken op de knop getoond. U kunt de gebruiker gedefinieerde functie in het werkblad zelf maken zonder toevoeging van een nieuwe module, maar dat je niet in staat om de functie te gebruiken in andere werkbladen van dezelfde werkmap zal maken.
- 4Maak de "header" of "prototype" van je functie. Het heeft de volgende structuur:
publieke functie TheNameOfYourFunction (param1 Zoals type 1, param2 Als type2) Zoals returnType
Het kan zoveel parameters als je wilt, en het type kan een van Excel basisgegevens types of types object als Range. Je denkt misschien van parameters als de 'operanden' uw functie zal handelen. Bijvoorbeeld, als je zegt SIN (45) aan de sinus van 45 graden te berekenen, 45 zal worden genomen als een parameter. Dan is de code van uw functie zal die waarde gebruiken om iets anders te berekenen en presenteren het resultaat. - 5Voeg de code van de functie voor dat u 1) gebruik maken van de waarden die door de parameters; 2) toewijzen het resultaat aan de naam van de functie, en 3) sluit de functie met "end-functie".
Leren programmeren in VBA of in een andere taal kan enige tijd en een gedetailleerde tutorial. Echter, functies hebben meestal kleine code blokken en maken gebruik van zeer weinig kenmerken van een taal. De meer bruikbare elementen van de VBA-taal zijn:- De Indien blok, dat u toelaat om een deel van de code uit te voeren alleen als een voorwaarde wordt voldaan. Bijvoorbeeld:
If grade >= 5 Then
Else
End If
End Function
Let op de elementen in een If code blok:IF condition THEN code ELSE code END IF
. Het woord Else samen met het tweede deel van de code zijn optioneel. - De Do blok, dat een deel van de code wordt uitgevoerd Hoewel of Totdat een voorwaarde wordt voldaan. Bijvoorbeeld:
Public Function IsPrime(value As Integer) As Boolean
i = 2
Do
IsPrime = False
i = i + 1
End Function
Let op de elementen weer:DO code LOOP WHILE/UNTIL condition
. Let ook op de tweede regel waarin een variabele wordt "verklaard". U kunt variabelen toe te voegen aan uw code, zodat u ze later kunt gebruiken. Variabelen fungeren als tijdelijke waarden in de code. Tot slot merkt de verklaring van de functie als BOOLEAN, dat is een datatype dat alleen de waarden WAAR en ONWAAR maakt. Deze methode van het bepalen of een getal priem is veruit niet de optimale, maar ik heb het liet op die manier om de code beter leesbaar te maken. - De voor blok, dat een deel van de code van een opgegeven aantal keren uitvoert. Bijvoorbeeld:
Public Function Factorial(value As Integer) As Long
Dim i As Integer
result = 0
result = 1
result = 1
result = result * i
End If
End Function
Let op de elementen weer:FOR variable = lower limit TO upper limit code NEXT
. Let ook op de toegevoegde ElseIf element in het If statement, waarmee u meer opties toe te voegen aan de code die moet worden uitgevoerd. Tot slot merkt de verklaring van de functie en de variabele "resultaat" als Long. De Long datatype laat waarden veel groter dan Integer.
Hieronder is de code voor een functie die kleine aantallen omzet in woorden.
- De Indien blok, dat u toelaat om een deel van de code uit te voeren alleen als een voorwaarde wordt voldaan. Bijvoorbeeld:
- 6Ga terug naar uw werkmap en gebruik de functie door het starten van de inhoud van een cel met een gelijkteken gevolgd door de naam van uw functie. Toevoegen aan de naam van de functie een haakje openen, de parameters gescheiden door komma's en een laatste haakje sluiten. Bijvoorbeeld:
= NumberToLetters (A4)
U kunt uw gebruikers gedefinieerde formule ook gebruiken door te kijken naar het in de User Defined categorie in de Formule invoegen wizard. Klik nu in de Fx knop die zich links van de formulebalk.
De parameters kunnen worden uit drie soorten:
- Constante waarden direct getypt in de cel formule. Strings hebben in dit geval te worden aangehaald.
7
Controleer het resultaat is ok na gebruik van de functie een paar keer te verzekeren dat ze goed behandelt verschillende parameterwaarden: Tips
Excel heeft een groot aantal ingebouwde functies en de meeste berekeningen kunnen worden gedaan met behulp van hen, hetzij zelfstandig of in combinatie. Zorg ervoor dat je door de lijst met beschikbare functies voordat u begint met coderen van uw eigen. Executie mogelijk sneller als u de ingebouwde gebruiken in functies. als je niet weet hoe je de code voor een functie te schrijven, te lezen hoe u een eenvoudige macro in Microsoft Excel te schrijven. wanneer schrijf je een blok code binnen een controlestructuur als als, voor, doe, etc. Zorg ervoor dat u streepje het blok van code met behulp van een paar spaties of tab (de stijl van inspringen is aan u). Dat zal uw code gemakkelijker te begrijpen en je zult een stuk makkelijker om fouten te herkennen en verbeteringen te maken. Gebruik een naam die nog niet is gedefinieerd als een functie naam in excel of je uiteindelijk in staat om slechts een van de functies te gebruiken. Soms kan een functie niet nodig alle parameters een resultaat te berekenen. In dat geval kunt u het zoekwoord optioneel te gebruiken voor de naam van de parameter in de functie header. U kunt de functie IsMissing (parameter_name) gebruiken in de code te bepalen of de parameter een waarde werd toegewezen of niet.
Waarschuwingen
Vanwege veiligheidsmaatregelen, kunnen sommige mensen macro's uit te schakelen. Zorg ervoor dat u laat uw collega's weten dat het boek dat u verzendt hen heeft macro's en dat ze kunnen vertrouwen ze niet van plan om hun computers te beschadigen. de functies die in dit artikel zijn, in geen geval, de beste manier om de problemen op te lossen. In dit geval werd alleen gebruikt om het gebruik van de controlestructuur van de taal verklaren. vba, zoals elke andere taal, heeft een aantal andere controlestructuren naast doen, indien en voor. Die zijn hier uitgelegd alleen om duidelijk te maken wat voor soort dingen kunnen worden gedaan binnen de functie broncode. Er zijn veel online tutorials beschikbaar, waar u kunt leren vba.