VBA MID -toiminto | Kuinka käyttää Excel VBA MID -toimintoa?

Excel VBA MID-toiminto

VBA MID -toiminto poimii arvot toimitetun lauseen tai sanan keskeltä. MID-toiminto on luokiteltu merkkijono- ja teksti-funktioiden alle ja se on laskentataulukko-funktio, joka tarkoittaa tämän funktion käyttöä VBA: ssa, meidän on käytettävä application.worksheet-menetelmää.

On tilanteita, joissa haluamme poimia etunimen, sukunimen tai keskinimen. Tällöin TEXT-luokan kaavat auttavat täyttämään vaatimuksemme. Tämän toiminnon käyttö on sama kuin laskentataulukon viittauksen ja syntaksin on sama.

Syntaksi

Kuten Excelin MID-funktiollamme, myös VBA: lla on samanlainen syntaksiarvojen joukko. Alla on syntakse.

  • Merkkijono etsittäväksi: Tämä ei ole muuta kuin mikä on merkkijono lause eli mistä merkkijonosta tai sanasta haluat poimia arvot.
  • Lähtökohta: mistä lauseen kohdasta haluat purkaa. Tämän pitäisi olla numeerinen arvo.
  • Poimittavien merkkien lukumäärä: Kuinka monta merkkiä aloitusasennosta haluat purkaa? Tämän pitäisi olla myös numeerinen arvo.

Kuinka käyttää VBA MID -toimintoa?

Voit ladata tämän VBA MID -toimintomallin täältä - VBA MID -toimintomalli

Esimerkki 1

Oletetaan, että sinulla on sana "Hei hyvää huomenta" ja haluat poimia "Hyvä" tästä lauseesta. Noudata alla olevia vaiheita arvon purkamiseksi.

Vaihe 1: Luo ensin makron nimi.

Koodi:

 Sub MID_VBA_Example1 () Loppu Sub 

Vaihe 2: Ilmoita muuttujaksi STRING.

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue kuin merkkijono End Sub 

Vaihe 3: Määritä nyt arvo tälle muuttujalle MID-toiminnon avulla.

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue as String MiddleValue = Mid (End Sub 

Vaihe 4: Ensimmäinen argumentti on merkkijono eli mistä arvosta haluamme poimia. Joten arvo on "Hei hyvää huomenta".

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hei hyvää huomenta", End Sub 

Vaihe 5: Seuraavaksi on mikä on purettavan merkin lähtökohta. Tässä tapauksessa hyvää huomenta alkaa seitsemännestä hahmosta.

Huomaa: Välilyönti on myös merkki.

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue as String MiddleValue = Mid ("Hei hyvää huomenta", 7 End Sub 

Vaihe 6: Pituus ei ole muuta kuin kuinka monta merkkiä haluat purkaa. Meidän täytyy poimia 4 merkkiä, koska sanan "Hyvä" pituus on 4 merkkiä.

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue as String MiddleValue = Mid ("Hei hyvää huomenta", 7, 4) End Sub 

Vaihe 7: Kaava on valmis. Näytetään muuttujan tulos viestiruudussa.

Koodi:

 Sub MID_VBA_Example1 () Dim MiddleValue as String MiddleValue = Mid ("Hei hyvää huomenta", 7, 4) MsgBox MiddleValue End Sub 

Vaihe 8: Suorita tämä koodi nyt manuaalisesti tai paina F5-näppäintä. Viestiruudussa pitäisi näkyä sana "Hyvä".

Tuotos:

Esimerkki 2

Oletetaan, että sinulla on etu- ja sukunimi yhdessä ja sana on ”Ramesh, Tendulkar”. Etunimen ja sukunimen välissä erotinmerkki on pilkku (,). Nyt meidän on purettava vain etunimi.

Vaihe 1: Luo makro ja määritä muuttuja.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String End Sub 

Vaihe 2: Määritä nyt arvo tälle muuttujalle MID-toiminnon avulla.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid (End Sub 

Vaihe 3: Merkkijonomme on "Ramesh.Tendulkar", joten kirjoita tämä sana.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", End Sub 

Vaihe 4: Koska etsimme etunimen, lähtökohta on 1.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, End Sub 

Vaihe 5: Merkin pituus, jonka voit syöttää suoraan numeroksi 6, mutta tämä ei ole paras tapa. Pituuden määrittämiseksi voidaan käyttää vielä yhtä kaavaa nimeltä Instr.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (End Sub) 

Vaihe 6: Tämä lähtökohta on 1.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, End Sub) 

Vaihe 7: Merkkijono 1 on nimemme, ts. "Ramesh, Tendulkar".

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", End Sub) 

Vaihe 8: Merkkijono 2 mikä on etunimen ja sukunimen erotin eli pilkku (,).

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") End Sub 

Huomautus: Instr-funktio palauttaa kuinka monta merkkiä sanassa ”Ramesh, Tendulkar” on merkkijonon 1 sijainnista merkkijonon 2 kohtaan eli pilkkuun (,) asti. Joten Instr palauttaa tuloksen 7 pilkulla (,).

Vaihe 9: Koska Instr-funktio palauttaa numeron, merkit, mukaan lukien pilkku (,), meidän on miinus 1 merkki tässä. Joten kirjoita -1 Instr-toiminnon sulkemisen jälkeen.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) End Sub 

Vaihe 10: Näytä muuttujan arvo nyt viestiruudussa.

Koodi:

 Sub MID_VBA_Example2 () Dim FirstName as String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) MsgBox FirstName End Sub 

Vaihe 11: Suorita tämä koodi F5-näppäimellä tai voit suorittaa koodin manuaalisesti, saisimme etunimen viestiruutuun.

Tuotos:

Esimerkki 3

Annan sinulle yhden tehtävän ratkaistavaksi. Minulla on luettelo etu- ja sukunimestä.

Tästä luettelosta haluan sinun purkavan vain etunimen. Kaikki parhaat!!!!.

Ok, jos olet yrittänyt etkä saada tulosta, alla oleva koodi auttaisi sinua tässä.

Koodi:

 Sub MID_VBA_Example3 () Hämärä i niin kauan kuin i = 2-15 solua (i, 2) .Arvo = Mid (solut (i, 1) .Arvo, 1, InStr (1, solut (i, 1) .arvo, " , ") - 1) Seuraava i End Sub 

Kopioi ja liitä yllä oleva koodi moduuliin. Kun olet kopioinut koodin, suorita tämä koodi F5-näppäimellä tai voit suorittaa manuaalisesti.

Sen pitäisi antaa tulos kuten alla.

Muistettavaa

  • MID-funktion pituusargumentti on valinnainen. Jos jätät tämän huomioimatta, oletusarvoksi tulee 1.
  • Pituuden tai lähtöasennon määrittämiseksi käytä Instr-toimintoa yhdessä MID-toiminnon kanssa.

$config[zx-auto] not found$config[zx-overlay] not found