Sisällysluettelo
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.xlsm5 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.