Kuidas leida täpne vaste VBA abil Excelis (5 võimalust)

  • Jaga Seda
Hugh West

Kui otsite lihtsamaid viise täpse vaste leidmiseks, kasutades VBA , siis leiate selle artikli kasulikuks. Niisiis, alustame artikliga ja tutvume täpse vaste leidmise viisidega.

Lae alla töövihik

VBA Leia täpne vaste.xlsm

5 võimalust VBA abil täpse vaste leidmiseks

Olen kasutanud järgmist tabelit, milles on kirjed mõnede õpilaste tulemuste kohta. Selgitan erinevaid viise täpse vaste leidmiseks, kasutades seda tabelit abiga VBA.

Selleks olen kasutanud Microsoft Exceli 365 versiooni, te võite kasutada mis tahes muid versioone vastavalt oma mugavusele.

Meetod-1: Täpse vaste leidmine lahtrite vahemikus

Kui soovite leida täpse vaste stringile, näiteks õpilase nimele, ja seejärel leida selle õpilase lahtri positsiooni, siis saate seda teha selle meetodi abil.

Siin ma leian täpse vaste õpilasele nimega "Joseph Micahel" .

Step-01 :

➤Sealt edasi Arendaja Tab>> Visual Basic Valik

Siis on Visual Basic toimetaja avaneb.

➤Sealt edasi Sisesta Tab>> Moodul Valik

Pärast seda on Moodul luuakse.

Step-02 :

➤ Kirjutage järgmine kood

 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 

Siin, "täpne kokkulangevus" on lehe nimi ja "B5:B10" on õpilaste nimede vahemik ja "Joseph Michael" on õpilase nimi, mis tuleb välja selgitada.

rng on deklareeritud vahemiku objektina ja str string-muutujana, et salvestada otsitava elemendi aadressi.

The IF avaldus määrab elemendi aadressi aadressile str muutuv.

➤Press F5

Tulemus :

Pärast seda saate järgmised andmed Sõnumikast mis sisaldab õpilase nimega lahtri positsiooni "Joseph Michael" .

Loe edasi: VBAga Exceli vahemikus leidmine: sealhulgas täpsed ja osalised vasted

Meetod-2: Täpse vaste leidmine ja asendamine VBA abil

Näitan, kuidas leida näidatud õpilase nimi ja seejärel asendada see teise nimega, sest kuidagi ekslikult on see nimi siia kirjutatud. Saate leida oma soovitud string ja asendada see järgides seda meetodit.

Step-01 :

➤Follow Step-01 aadressilt Meetod-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 

Siin, "find&replace" on lehe nimi ja "B5:B10" on õpilaste nimede vahemik ja "Donald Paul" on õpilase nimi, mis tuleb välja selgitada ja seejärel "Henry Jackson" on õpilase nimi eelmise asemel.

WITH avaldusega välditakse selle kooditüki kordamist igas avalduses.

The IF avaldus määrab elemendi aadressi aadressile str muutuja ja DO loop asendab kõik otsingusõna esinemised.

➤Press F5

Tulemus :

Pärast seda saate uue õpilase nime kui "Henry Jackson" .

Meetod-3: Täpse ja suurustundliku vaste leidmine

Kui soovite leida suur- ja väike-kodaniku vasteid, siis järgige seda meetodit. Siin on mul kaks sarnast nime, kuid suur- ja väike-kodaniku puhul on erinevus ja sõltuvalt suur- ja väike-kodaniku puhul asendan ma viimase õpilase nime.

Step-01 :

➤Follow Step-01 aadressilt Meetod-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 End EndSub 

Siin, "Suur- ja väike-kodanike suhtes tundlik" on lehe nimi ja "B5:B10" on õpilaste nimede vahemik ja "Donald Paul" on õpilase nimi, mis tuleb välja selgitada, ja siis "Henry Jackson" on õpilase nimi eelmise asemel.

WITH avaldusega välditakse selle kooditüki kordamist igas avalduses.

The IF avaldus määrab elemendi aadressi aadressile str muutuja ja DO loop asendab kõik otsingusõna esinemised.

➤Press F5

Tulemus :

Nüüd, vastavalt juhtumile, muudetakse õpilase nimi järgmiselt. "Henry Jackson" .

Sarnased lugemised:

  • Kuidas leida string rakus, kasutades VBA-d Excelis (2 meetodit)
  • VBA leidmine Exceli veerus (7 lähenemisviisi)
  • Kuidas leida string VBA-ga Excelis (8 näidet)

Meetod-4: InStr funktsiooni kasutamine

Oletame, et soovite sobitada Pass või Ei vasta korrespondeeri õpilaste nimedele sõltuvalt Tulemuse veerg kus Pass või Fail on kirjutatud. Selle stringi leidmiseks on kirjutatud Tulemuse veerg ja kirjutage üles "Läbitud" aastal Staatus veerg eksami sooritanud õpilaste puhul saab kasutada funktsioon InStr .

Step-01 :

➤Follow Step-01 aadressilt Meetod-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 

Siin on lahtrite vahemik C5:C10 mis on Tulemuse veerg

InStr(cell. value, "Pass")> 0 on tingimus, mille puhul number on suurem kui null (kui lahter sisaldab "Pass" ), siis jätkub järgmine rida ja annab kõrvalolevasse lahtrisse väljundiks Läbitud .

Kui tingimus muutub valeks, tähendab see, et lahter ei sisalda ühtegi "Pass" siis rida all ELSE käivitub ja annab väljundväärtuse kõrvalolevas lahtris kui Tühi .

See tsükkel jätkub iga lahtri puhul.

➤Press F5

Tulemus :

Siis saate te "Läbitud" läbinud õpilaste staatus.

Meetod-5: Täpse vaste leidmine ja andmete väljavõtmine

Kui soovite väljavõtte vastavatest andmetest õpilase nimega "Michael James" siis võite järgida seda meetodit.

Step-01 :

➤Follow Step-01 aadressilt Meetod-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 

Siin olen kasutanud B100 kui Aktiivne lehtede vahemik (võite kasutada mis tahes vahemikku vastavalt oma kasutusalale).

InStr(1, Range("B" & i), "Michael James")> 0 on tingimus, millega kontrollitakse, kas veerus olev lahter B sisaldab Michael James .

Range("E" & icount & ":G" & icount) on vahemik, kuhu soovite oma väljundandmeid ja Range("B" & i & ":D" & i).value annab väärtused veerust B aadressile D .

➤Press F5

Tulemus :

Pärast seda saate järgmised väljavõetud andmed õpilaste kohta, kellel on nimi Michael James .

Praktika sektsioon

Selleks, et ise harjutada, on meil olemas Praktika lõik nagu allpool lehel nimega Praktika Palun tehke seda ise.

Kokkuvõte

Selles artiklis püüdsin käsitleda kõige lihtsamaid viise täpse vaste leidmiseks, kasutades VBA Excelis tõhusalt. Loodan, et see on teile kasulik. Kui teil on ettepanekuid või küsimusi, jagage neid meiega.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.