Sisukord
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.xlsm5 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.