Kā atrast precīzu atbilstību, izmantojot VBA programmā Excel (5 veidi)

  • Dalīties Ar Šo
Hugh West

Ja meklējat dažus no vienkāršākajiem veidiem, kā atrast precīzu atbilstību, izmantojot VBA , tad šis raksts jums būs noderīgs. Tātad, sāksim lasīt rakstu un iepazīsimies ar precīzas atbilstības atrašanas veidiem.

Lejupielādēt darbgrāmatu

VBA Atrast precīzu atbilstību.xlsm

5 veidi, kā atrast precīzu atbilstību, izmantojot VBA

Esmu izmantojis šādu tabulu, kurā ir dažu skolēnu rezultātu ieraksti. Es paskaidrošu dažādus veidus, kā atrast precīzu atbilstību, izmantojot šo tabulu, ar šīs tabulas palīdzību. VBA.

Šim nolūkam es izmantoju Microsoft Excel 365 versiju, bet jūs varat izmantot jebkuru citu versiju atbilstoši jūsu ērtībām.

1. metode: precīza sakritības atrašana šūnu diapazonā

Ja vēlaties atrast precīzu sakritību virknei, piemēram, skolēna vārdam, un pēc tam atrast šī skolēna šūnas pozīciju, varat to izdarīt, izmantojot šo metodi.

Šeit es grasos atrast precīzu atbilstību skolēnam ar nosaukumu "Džozefs Mikahels" .

Solis-01 :

➤Iet uz Izstrādātājs Cilne>> Visual Basic Iespēja

Tad Visual Basic redaktors atvērsies.

➤Iet uz Ievietot Cilne>> Modulis Iespēja

Pēc tam Modulis tiks izveidots.

Solis-02 :

➤Narakstiet šādu kodu

 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 

Šeit, "precīza atbilstība" ir lapas nosaukums un "B5:B10" ir skolēnu vārdu diapazons, un "Joseph Michael" ir skolēna vārds, kas jānoskaidro.

rng ir deklarēts kā diapazona objekts un str kā virknes mainīgo, lai saglabātu meklējamā vienuma adresi.

Portāls IF paziņojums piešķirs elementa adresi vienumam str mainīgs.

➤Press F5

Rezultāts :

Pēc tam jūs saņemsiet šādu informāciju. Ziņu lodziņš kurā ir skolēna, kura vārds ir students, atrašanās vieta šūnā "Joseph Michael" .

Lasīt vairāk: Atrast diapazonā ar VBA programmā Excel: ietverot precīzu un daļēju sakritību

2. metode: precīza atbilstības atrašana un aizstāšana, izmantojot VBA

Es parādīšu veidu, kā atrast norādīto skolēna vārdu un pēc tam aizstāt to ar citu vārdu, jo kaut kādā veidā kļūdaini šis vārds šeit ir ierakstīts. Jūs varat. atrodiet vēlamo virkni un nomainiet to izmantojot šo metodi.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 

Šeit, "atrast un aizstāt" ir lapas nosaukums un "B5:B10" ir skolēnu vārdu diapazons, un "Donald Paul" ir skolēna vārds, kas jānoskaidro, un tad "Henrijs Džeksons" būs skolēna vārds iepriekšējā vārda vietā.

AR izteikums ļaus izvairīties no koda daļas atkārtošanas katrā izteikumā.

Portāls IF paziņojums piešķirs elementa adresi vienumam str mainīgais lielums un DO cilpa aizstās visus meklēto vārdu atkārtojumus.

➤Press F5

Rezultāts :

Pēc tam jaunā skolēna vārds tiks iegūts kā. "Henrijs Džeksons" .

3. metode: precīza un uz lietām jutīga sakritības atrašana

Ja vēlaties atrast uz mazo un lielo burtu atšķirībām balstītu sakritību, izmantojiet šo metodi. Šeit man ir divi līdzīgi vārdi, bet ir atšķirības lielumos, un atkarībā no lieluma es aizstāju pēdējā skolēna vārdu.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 EndSub 

Šeit, "lielo un mazo burtu sensitivitāte" ir lapas nosaukums un "B5:B10" ir skolēnu vārdu diapazons, un "Donald Paul" ir skolēna vārds, kas jānoskaidro, un tad "Henrijs Džeksons" būs skolēna vārds iepriekšējā vārda vietā.

AR izteikums ļaus izvairīties no koda daļas atkārtošanas katrā izteikumā.

Portāls IF paziņojums piešķirs elementa adresi elementam str mainīgais lielums un DO cilpa aizstās visus meklēto vārdu atkārtojumus.

➤Press F5

Rezultāts :

Tagad saskaņā ar lietu skolēna vārds tiks mainīts uz. "Henrijs Džeksons" .

Līdzīgi lasījumi:

  • Kā atrast virkni šūnā, izmantojot VBA programmā Excel (2 metodes)
  • VBA Atrast kolonnā programmā Excel (7 pieejas)
  • Kā atrast virkni ar VBA programmā Excel (8 piemēri)

4. metode: Izmantojot InStr funkciju

Pieņemsim, ka vēlaties saskaņot Pass vai Nespēja sarakstīties pie skolēnu vārdiem atkarībā no Rezultātu sleja kur Pass vai Fail ir ierakstīta. Lai atrastu šo virkni datubāzē Rezultātu sleja un pierakstiet "Pieņemts" in the Statusa sleja studentiem, kuri ir nokārtojuši eksāmenu, varat izmantot funkcija InStr .

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 

Šajā gadījumā šūnu diapazons ir C5:C10 kas ir Rezultātu sleja

InStr(šūnas vērtība, "Pass")> 0 ir nosacījums, kad skaitlis ir lielāks par nulli (ja šūnā ir "Pass" ), tad nākamā rinda turpināsies un blakus esošajā šūnā parādīs rezultātu kā Nodots .

Ja nosacījums kļūst nepatiess, tas nozīmē, ka šūnā nav nevienas "Pass" tad rinda zem ELSE tiks izpildīts un sniegs izejas vērtību blakus esošajā šūnā kā Tukšs .

Šī cilpa turpināsies katrai šūnai.

➤Press F5

Rezultāts :

Pēc tam jūs iegūsiet "Izturējis" statusu studentiem, kuri ir nokārtojuši.

5. metode: precīza sakritības atrašana un datu iegūšana

Ja vēlaties iegūt atbilstošos datus par skolēnu ar nosaukumu "Michael James" tad varat izmantot šo metodi.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 

Šeit esmu izmantojis B100 Aktīvās lapas diapazons (varat izmantot jebkuru diapazonu atkarībā no lietošanas veida).

InStr(1, Range("B" & amp; i), "Michael James")> 0 ir nosacījums, lai pārbaudītu, vai ailē esošā šūna B satur Maikls Džeimss .

Range("E" & amp; icount & amp; ":G" & amp; icount) ir diapazons, kurā vēlaties ievadīt izejas datus, un Range("B" & amp; i & amp; & amp; ":D" & amp; i).value sniegs vērtības no kolonnas B uz D .

➤Press F5

Rezultāts :

Pēc tam par skolēniem, kuriem ir vārds, iegūsiet šādus iegūtos datus. Maikls Džeimss .

Prakses sadaļa

Prakses veikšanai mēs esam nodrošinājuši Prakse sadaļu, piemēram, zemāk lapā ar nosaukumu Prakse . Lūdzu, dariet to pats.

Secinājums

Šajā rakstā mēģināju aprakstīt vienkāršākos veidus, kā atrast precīzu atbilstību, izmantojot VBA Ceru, ka tas jums būs noderīgs. Ja jums ir kādi ieteikumi vai jautājumi, nekautrējieties dalīties ar mums.

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.