Satura rādītājs
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.xlsm5 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 kā 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.