Ynhâldsopjefte
Ien fan 'e wichtichste en meast brûkte funksjes dy't wy brûke by it wurkjen mei VBA yn Excel is de Midfunksje fan VBA . It nimt in tekenrige as de ynfier en jout in opjûn oantal karakters werom út it midden fan de tekenrige as útfier. Hjoed yn dit artikel sil ik jo sjen litte hoe't jo de Midfunksje fan VBA brûke kinne mei goede foarbylden en yllustraasjes.
Dit sil 9 tekens weromjaan fan 'e tekenrige "Angela Catherine Nevills" , begjinnend fan it 8ste karakter. It is “Catherine” .
Download Practice Workbook
Download dit oefenboek om de taak út te oefenjen wylst jo lêze dit artikel.
VBA Mid Function.xlsm
Yntroduksje ta de Midfunksje fan VBA yn Excel
⧭ Funksje Doel:
De funksje Mid nimt in wearde as de ynfier en jout in opjûn oantal tekens werom, begjinnend fan in opjûne posysje fan de wearde as de útfier.
De wearde kin in string, getal , of sels in boolean wêze.
As jo bygelyks Mid(“Angela Catherine Nevills”,8,9) ynfoegje, komt it “Catherine” werom.
As jo Mid(12345,2,3) ynfoegje, krije jo 234.
En ynfoegje Mid(False,2,3) , jo krije als .
⧭ Syntaksis:
De syntaksis fan de Mid funksje fan VBA is:
=Mid(String,Start as Long,[Length])
⧭ Arguminten:
Argumint | Eask / opsjoneel | Utlis |
---|---|---|
String | Eask | De tekenrige fan dy't in oantal karakters weromjûn wurde. |
Start | Required | It begjinteken fan de tekenrige dy't weromjûn wurdt. |
Lingte | Opsjoneel | It oantal karakters dat weromjûn wurdt. Standert is 1. |
⧭ Wearde werom:
Jout in opjûn oantal karakters werom út it midden fan in tekenrige, begjinnend fan in opjûne posysje.
3 Foarbylden fan 'e middenfunksje fan VBA yn Excel
Dizze kear, litte wy de Midfunksje<ûndersykje 2> fan VBA yn detail mei in pear foarbylden.
1. In opjûn oantal karakters skieden fan 'e midden fan guon ID's Mei de midfunksje fan VBA yn Excel
Hjir hawwe wy in gegevensset mei de ID's en Nammen fan guon meiwurkers fan in bedriuw mei de namme Saturn Group.
Hjir, de 4e oant 7e karakters fan elk ID jout it oanslutingsjier fan de oanbelangjende meiwurker oan.
No sille wy in User-Defined funksje ûntwikkelje mei de Midfunksje fan VBA dat sil it oanslutingsjier fan elke meiwurker ekstrahearje fan 'e wurknimmer-ID .
Jo kinne de folgjende VBA -koade brûke:
⧭ VBA-koade:
3850
Opmerking: Dizze koademakket in funksje oan mei de namme Joining_Year .
⧭ Utfier:
Dizze útfiere funksje yn elke sel fan jo wurkblêd mei in ID as argumint.
Hjir, yn sel D4 , hawwe wy de formule ynfierd:
=Joining_Year(B4)
It hat it oanslutingsjier fan de earste meiwurker weromjûn, 2021 .
No kinne jo de slepe Folje Handle om de oanslutingsjierren fan de rest fan de meiwurkers te krijen.
⧭ Taljochting fan de Code:
- Earst ferklearje wy in funksje neamd Joining_Year dy't in ID nimt as de ynfier troch de line Function Joining_Year(ID) .
- Dan ekstrahearje wy 4 -tekens út it ID begjinnend fan posysje 4 , troch de rigel Joining_Year = Mid(ID, 4, 4) .
- De rigel Einfunksje ferklearret it ein fan de funksje.
2. De tafoegings fan guon e-mailadressen ekstrahearje mei de middenfunksje fan VBA yn Excel
No hawwe wy in nije kolom tafoege oan de gegevensset, dy't de e-mailadressen fan 'e meiwurkers befettet.
Dizze kear sille wy de útwreidingen fan 'e e-mailadressen ekstrahearje mei de Mid -funksje fan VBA .
De VBA-koade sil wêze:
⧭ VBA-koade:
4713
Opmerking: Dizze koade makket in funksje oan mei de namme Extension .
⧭ Utfier:
Dizze útfiere funksje yn elke sel fan jo wurkblêd mei in E-postAdres as argumint.
Hjir, yn sel E4 , hawwe wy de formule ynfierd:
=Extension(D4)
It hat de tafoeging fan it earste e-mailadres weromjûn.
Dan kinne jo de Fillhandtak slepe om de tafoegings fan alle e-post út te heljen adressen.
⧭ Taljochting fan de koade
- Earst ferklearje wy in funksje mei de namme Extension dy't elke namme nimt as de ynfier troch de rigel Function Extension(Email_Address) .
- Dan begjinne wy in iteraasje mei in for-loop dat elk karakter fan it E-postadres kontrolearret om te sjen oft it @ is of net troch de rigel If Mid(Email_Address, i, 1) = "@" Dan .
- As it in @ fynt, dan ekstrahearret it de fereaske tafoeging út it E-postadres troch de rigel Extension = Mid(Email_Address, i + 1, Len(Email_Address) – (i + 4)) .
- Uteinlik ferklearje wy it ein fan 'e funksje.
3. Guon teksten kontrolearje om te sjen oft se in spesifike tekst befetsje of net
Ien fan 'e wichtichste gebrûk fan 'e Midfunksje is om te sjen oft in tekst in spesifike tekst befettet of net .
Litte wy in funksje ûntwikkelje om te kontrolearjen oft de E-mailadressen de term “gmail” befetsje of net.
Jo kinne de folgjende
VBA -koade:
⧭ VBA-koade:
5589
Opmerking: Dizze koade makket in funksje neamd Kontrolearje .
⧭ Utfier:
Dizze funksje útfiere yn elke sel fan jo wurkblêd mei twa teksten as argumint.
Hjir, yn sel E4 , hawwe wy de formule ynfierd:
=Checking(D4,"gmail")
It is ja weromjûn omdat it 1e e-mailadres in Gmail -adres is.
Dan kinne jo de Ful Handle om itselde te dwaan foar alle e-post-ID's.
⧭ Taljochting fan de koade:
- Earst ferklearje wy in funksje mei de namme Kontrôle dy't twa teksten as arguminten nimt troch de rigel Funksjekontrôle(Tekst1,Tekst2) .
- Dan begjinne wy in for-lus dy't elk segmint fan Tekst1 kontrolearret fanôf posysje 1 , om te sjen oft it lyk is oan Tekst2 of net , troch de rigel As Mid(Tekst1, i, Len(Tekst2)) = Tekst2 Dan .
- As it Tekst2 fynt, dan jout it "Ja" werom, oars jout it "Nee" werom.
- Uteinlik slute wy de funksje troch de rigel Einfunksje .
Dingen om te ûnthâlden
- It 1e argumint fan de Midfunksje hoecht net altyd in tekenrige te wêzen. It kin in string , in getal , of sels in boolean wearde wêze.
- Mar de 2e en 3e arguminten moatte nûmers wêze. Se kinne hiele getallen of fraksjes wêze, mar moatte getal wêze. As it fraksjes binne, dan is de Midfunksje sil se konvertearje nei de tichtstbyste hiele getallen .