Innehållsförteckning
En av de viktigaste och mest använda funktionerna som vi använder när vi arbetar med VBA i Excel är den Mittfunktion på VBA Den tar en sträng som indata och returnerar ett givet antal tecken från strängens mitt som utdata. I den här artikeln ska jag visa hur du kan använda Mittfunktion på VBA med lämpliga exempel och illustrationer.
Detta ger följande resultat 9 tecken från strängen "Angela Catherine Nevills" , med utgångspunkt från 8:e karaktär. Det är "Catherine" .
Ladda ner övningsboken
Ladda ner den här övningsboken för att träna på uppgiften medan du läser den här artikeln.
VBA Mid Function.xlsmIntroduktion till VBA-funktionen Mid i Excel
⧭ Funktionsmål:
Mitt i Funktionen tar ett värde som indata och returnerar ett givet antal tecken från en given position i värdet som utdata.
Värdet kan vara ett sträng, nummer , eller till och med en boolean .
Om du till exempel infogar Mid("Angela Catherine Nevills",8,9), kommer den att återge "Catherine" .
Om du sätter in Mid(12345,2,3) , du får 234.
Och infoga Mitt(Falsk,2,3) , får du als .
⧭ Syntax:
Syntaxen för Mittfunktion på VBA är:
=Mid(String,Start as Long,[Längd])
⧭ Argument:
Argument | Obligatoriskt / valfritt | Förklaring |
---|---|---|
Sträng | Krävs | Strängen från vilken ett antal tecken returneras. |
Starta | Krävs | Starttecknet i strängen som returneras. |
Längd | Valfritt | Antalet tecken som returneras. Standardvärdet är 1. |
⧭ Returvärde:
Återger ett givet antal tecken från mitten av en sträng, med början från en given position.
3 exempel på VBA-funktionen Mid i Excel
Den här gången ska vi utforska Mittfunktion på VBA i detalj med några exempel.
1. Separera ett givet antal tecken från mitten av vissa ID:n med hjälp av VBA-funktionen Mid i Excel
Här har vi en datamängd med ID:er och Namn av några anställda på ett företag som heter Saturn Group.
Här kan 4:e till 7:e tecken i varje ID betecknar den anställdes inträdesår.
Nu ska vi utveckla en Användardefinierad funktion med hjälp av Mittfunktion på VBA som hämtar varje anställds anslutningsår från Anställdas ID .
Du kan använda följande VBA kod:
⧭ VBA-kod:
Funktion Sammanförande_år(ID) Sammanförande_år = Mid(ID, 4, 4) Slutfunktion
Observera: Denna kod skapar en funktion som heter År för anslutning .
⧭ Utgång:
Kör den här funktionen i en valfri cell i arbetsbladet med ett ID som argument.
Här, i cell D4 har vi angett formeln:
=Sammanträdesår(B4)
Den har returnerat den första anställdas inträdesår, 2021 .
Nu kan du dra den Handtag för fyllning för att få fram de övriga anställdas inträdesår.
⧭ Förklaring av koden:
- Först deklarerar vi en funktion som heter År för anslutning som tar ett ID som ingångsvärde genom raden Funktion Joining_Year(ID) .
- Därefter extraherar vi 4 tecken från ID med början från position 4 , genom linjen Joining_Year = Mid(ID, 4, 4) .
- Linjen Slutfunktion anger att funktionen är slut.
2. Extrahera förlängningar från vissa e-postadresser med hjälp av VBA-funktionen Mid i Excel
Nu har vi lagt till en ny kolumn i datamängden som innehåller de anställdas e-postadresser.
Den här gången tar vi fram e-postadressernas tillägg med hjälp av Mitt i funktion av VBA .
VBA-kod kommer att vara:
⧭ VBA-kod:
Funktion Förlängning(E-postadress) For i = 1 To Len(E-postadress) If Mid(E-postadress, i, 1) = "@" Then Extension = Mid(E-postadress, i + 1, Len(E-postadress) - (i + 4)) End If Next i End Function
Observera: Denna kod skapar en funktion som heter Förlängning .
⧭ Utgång:
Kör den här funktionen i en valfri cell i arbetsbladet med en E-postadress som argument.
Här, i cell E4 har vi angett formeln:
=Förlängning(D4)
Den har returnerat förlängningen av den första e-postadressen.
Därefter kan du dra den Handtag för fyllning för att ta fram alla e-postadressers tillägg.
⧭ Förklaring av koden
- Först deklarerar vi en funktion som heter Förlängning som tar ett valfritt namn som indata genom raden Funktion Förlängning(E-postadress) .
- Därefter startar vi en iteration med en för-slinga som kontrollerar varje tecken i E-postadress för att se om det är @ eller inte genom linjen Om Mid(Email_Address, i, 1) = "@" Då .
- Om den hittar en @ och sedan extraherar den det önskade tillägget från E-postadress av linjen Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) .
- Slutligen förklarar vi att funktionen är slut.
3. Kontrollera vissa texter för att se om de innehåller en viss text eller inte.
Ett av de viktigaste användningsområdena för Mittfunktion är att se om en text innehåller en viss text eller inte.
Låt oss utveckla en funktion för att kontrollera om E-postadresser innehåller följande villkor "gmail" eller inte.
Du kan använda följande VBA kod:
⧭ VBA-kod:
Funktion Kontrollera(Text1, Text2) For i = 1 To Len(Text1) If Mid(Text1, i, Len(Text2)) = Text2 Then Kontrollera = "Ja" Exit For Else Kontrollera = "Nej" End If Next i End Function
Observera: Denna kod skapar en funktion som heter Kontrollera .
⧭ Utgång:
Kör den här funktionen i en valfri cell i arbetsbladet med två texter som argument.
Här, i cell E4 har vi angett formeln:
=Kontroll(D4, "gmail")
Den har återvänt ja eftersom den första e-postadressen är en Gmail adress.
Därefter kan du dra den Handtag för fyllning för att göra samma sak för alla e-post-ID:n.
⧭ Förklaring av koden:
- Först deklarerar vi en funktion som heter Kontrollera som tar två texter som argument genom raden Funktion Kontroll(Text1,Text2) .
- Sedan startar vi en for-slinga som kontrollerar varje segment av Text1 från positionen 1 för att se om den är lika med Text2 eller inte, genom raden Om Mid(Text1, i, Len(Text2)) = Text2 då .
- Om den hittar Text2 , då returneras "Ja" , i annat fall återges "Nej" .
- Slutligen avslutar vi funktionen med linjen Slutfunktion .
Saker att komma ihåg
- 1:a argumentet i den Mittfunktion behöver inte alltid vara en sträng utan kan vara en sträng , a nummer , eller till och med en boolean värde.
- Men den 2:a och 3:e argumenten måste vara nummer . De kan vara heltal eller . fraktioner men måste vara nummer . Om de är fraktioner , då är det Mittfunktion omvandlar dem till närmaste heltal .