Kuinka löytää tarkka ottelu VBA: n avulla Excelissä (5 tapaa).

  • Jaa Tämä
Hugh West

Jos etsit joitain helpoimpia tapoja löytää tarkka vastine käyttämällä apuna VBA Aloitetaan siis artikkelin käsittely ja tutustutaan tapoihin löytää tarkka vastine.

Lataa työkirja

VBA Etsi tarkka ottelu.xlsm

5 tapaa löytää tarkka vastaavuus VBA:n avulla

Olen käyttänyt seuraavaa taulukkoa, jossa on joidenkin opiskelijoiden tulokset. Selitän eri tapoja löytää tarkka vastine käyttämällä tätä taulukkoa seuraavien tietojen avulla. VBA.

Tässä tarkoituksessa olen käyttänyt Microsoft Excel 365 -versiota, mutta voit käyttää mitä tahansa muita versioita haluamasi mukaan.

Menetelmä-1: Täsmällisen vastaavuuden löytäminen solualueelta

Jos haluat löytää merkkijonon, kuten opiskelijan nimen, tarkan vastaavuuden ja sitten etsiä tämän opiskelijan solun sijainnin, voit tehdä sen noudattamalla tätä menetelmää.

Täältä aion löytää tarkan vastineen opiskelijalle nimeltä "Joseph Micahel" .

Step-01 :

➤Go to Kehittäjä Tab>> Visual Basic Vaihtoehto

Sitten Visual Basic Editor avautuu.

➤Go to Lisää Tab>> Moduuli Vaihtoehto

Sen jälkeen Moduuli luodaan.

Step-02 :

➤ Kirjoita seuraava koodi

 Sub searchtxt() Dim rng As Range Dim str As String Set rng = Sheets("exact match").Range("B5:B10").Find("Joseph Michael", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address MsgBox (rng & " in " & str) End If End Sub 

Tässä, "tarkka vastaavuus" on arkin nimi ja "B5:B10" on oppilaiden nimien valikoima, ja "Joseph Michael" on opiskelijan nimi, joka on selvitettävä.

rng ilmoitetaan alueobjektina ja str merkkijonomuuttujana, johon tallennetaan etsityn kohteen osoite.

The IF lauseke määrittää kohteen osoitteen osoitteeksi parametrin str muuttuja.

➤Press F5

Tulos :

Tämän jälkeen saat seuraavat tiedot Viestilaatikko joka sisältää opiskelijan solun sijainnin nimeltä "Joseph Michael" .

Lue lisää: Etsi alueelta VBA:lla Excelissä: mukaan lukien tarkat ja osittaiset vastaavuudet

Menetelmä-2: Tarkan vastaavuuden etsiminen ja korvaaminen VBA:n avulla

Näytän, miten löydetään ilmoitetun oppilaan nimi ja korvataan se toisella nimellä, koska tämä nimi on jotenkin virheellisesti kirjoitettu tähän. Voit etsi haluamasi merkkijono ja korvaa se noudattamalla tätä menetelmää.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub FindandReplace() Dim rng As Range Dim str As String With Worksheets("find&replace").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End Sub 

Tässä, "find&replace" on arkin nimi ja "B5:B10" on oppilaiden nimien valikoima, ja "Donald Paul" on oppilaan nimi, joka on selvitettävä, ja sitten "Henry Jackson" on oppilaan nimi edellisen nimen sijasta.

WITH lausekkeella vältetään koodinpätkän toistaminen jokaisessa lausekkeessa.

The IF lauseke määrittää kohteen osoitteen osoitteeksi parametrin str muuttuja ja DO silmukka korvaa kaikki hakusanan esiintymät.

➤Press F5

Tulos :

Tämän jälkeen saat uuden oppilaan nimen seuraavasti "Henry Jackson" .

Menetelmä-3: Täsmällisen ja isokirjaintarkan vastaavuuden löytäminen

Jos haluat löytää isojen ja pienten kirjainten välisen vastaavuuden, noudata tätä menetelmää. Tässä minulla on kaksi samankaltaista nimeä, mutta isojen ja pienten kirjainten välillä on ero, ja sen mukaan vaihdan viimeisen opiskelijan nimen.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub exactmatch() Dim rng As Range Dim str As String With Worksheets("case-sensitive").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End With EndSub 

Tässä, "case-sensitive" on arkin nimi ja "B5:B10" on oppilaiden nimien valikoima, ja "Donald Paul" on oppilaan nimi, joka on selvitettävä, ja sitten "Henry Jackson" on oppilaan nimi edellisen nimen sijasta.

WITH lausekkeella vältetään koodin toistaminen jokaisessa lausekkeessa.

The IF lauseke määrittää kohteen osoitteen osoitteeksi parametrin str muuttuja ja DO silmukka korvaa kaikki hakusanan esiintymät.

➤Press F5

Tulos :

Nyt, tapauksen mukaan, opiskelijan nimi muutetaan muotoon "Henry Jackson" .

Samanlaisia lukemia:

  • Miten löytää merkkijono solussa käyttämällä VBA: ta Excelissä (2 menetelmää)
  • VBA Etsi sarakkeesta Excelissä (7 lähestymistapaa)
  • Miten löytää merkkijono VBA: lla Excelissä (8 esimerkkiä)

Menetelmä-4: InStr-funktion käyttäminen

Oletetaan, että haluat sovittaa Pass tai Eivät vastaa opiskelijoiden nimiin riippuen Tulossarake jossa Pass tai Fail on kirjoitettu. Tämän merkkijonon löytämiseksi ohjelmasta Tulossarake ja kirjoita ylös "Läpäissyt" vuonna Tila-sarake kokeen läpäisseiden opiskelijoiden osalta voit käyttää seuraavaa vaihtoehtoa InStr-funktio .

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub Checkstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.Value, "Pass")> 0 Then cell.Offset(0, 1).Value = "Passed" Else cell.Offset(0, 1).Value = " " End If Next cell End Sub 

Tässä solualue on C5:C10 joka on Tulossarake

InStr(solun arvo, "Pass")> 0 on ehto, jossa luku on suurempi kuin nolla (kun solussa on "Pass" ), niin seuraava rivi jatkuu ja antaa viereiseen soluun tulosteen muodossa Hyväksytty .

Jos ehto muuttuu vääräksi tarkoittaa, että solu ei sisällä mitään "Pass" sitten rivin alla oleva rivi ELSE suoritetaan ja antaa viereisen solun lähtöarvon muodossa Tyhjä .

Tämä silmukka jatkuu jokaisen solun kohdalla.

➤Press F5

Tulos :

Sitten saat "Läpäissyt" läpäisseiden opiskelijoiden asema.

Menetelmä-5: Tarkan vastaavuuden löytäminen ja tietojen poimiminen

Jos haluat poimia vastaavat tiedot opiskelijalle nimeltä "Michael James" voit seurata tätä menetelmää.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & i), "Michael James")> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i).Value End If Next i End Sub 

Tässä olen käyttänyt B100 kuten Aktiivinen arkkialue (voit käyttää mitä tahansa vaihteluväliä käyttötarkoituksesi mukaan).

InStr(1, Range("B" & i), "Michael James")> 0 on ehto, jolla tarkistetaan, onko sarakkeen solu B sisältää Michael James .

Range("E" & icount & ":G" & icount) on alue, jolle haluat tulostiedot ja Range("B" & i & ":D" & i).value antaa arvot sarakkeesta B osoitteeseen D .

➤Press F5

Tulos :

Tämän jälkeen saat seuraavat tiedot oppilaista, joilla on nimi. Michael James .

Harjoitusosio

Jotta voit harjoitella itse, olemme toimittaneet Harjoitus osiossa alla olevan kaltaisesti arkissa nimeltä Harjoitus Tee se itse.

Päätelmä

Tässä artikkelissa yritin käsitellä helpoimpia tapoja löytää tarkka vastine käyttämällä VBA Excelissä tehokkaasti. Toivottavasti se on sinulle hyödyllinen. Jos sinulla on ehdotuksia tai kysymyksiä, voit jakaa ne kanssamme.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.