Kazalo
Če iščete nekaj najlažjih načinov za iskanje podreza z uporabo VBA, potem ste na pravem mestu. Po prebiranju tega članka boste lahko zlahka našli položaj podreza ali izvlekli podatke z uporabo tega podreza ali spremenili obliko podreza. Pojdimo v članek.
Prenos delovnega zvezka
Vzorec vsebine9 načinov iskanja podreza z uporabo VBA
Tukaj imam naslednjo podatkovno tabelo, s katero bom prikazal načine iskanja podreza v nizu z uporabo VBA. Poskušal bom prikazati tudi načine iskanja podreza v naključnem nizu.
To nalogo sem opravil z uporabo Microsoft Excel 365 različico, lahko pa uporabite katero koli drugo različico, ki vam ustreza.
Metoda-1: Iskanje podreza v nizu z uporabo VBA
Če želite v nizu poiskati želeni podrejeni niz z uporabo VBA, lahko uporabite funkcija InStr v kodi VBA.
Korak-01 :
➤Idi na Razvijalec Tab>> Visual Basic Možnost
Nato Urejevalnik Visual Basic se bo odprlo.
➤Najdi na Vstavite Tab>> Modul Možnost
Po tem je treba Modul bo ustvarjen.
Korak-02 :
➤Napišite naslednjo kodo
Sub FindFirst() Dim Pos As Integer Pos = InStr(1, "I think therefore I am", "think") MsgBox Pos End Sub
Tukaj, InStr(1, "Mislim, torej sem", "mislim") vrne položaj podreza v nizu. 1 je začetni položaj, " Mislim, torej sem." je niz, v katerem boste našli želeni podreženj, in "razmišljati" je podreza, ki jo želite poiskati. Privzeto je občutljiv na velikost črk, zato bodite pozorni na velikost črk podreze, ki jo želite poiskati.
➤Press F5
Rezultat :
Po tem se prikaže naslednje. Polje za sporočila ki vsebuje položaj "razmišljati" podreza.
Metoda-2: Iskanje za velikost črk neobčutljivega podstringa v nizu
Če želite z uporabo VBA poiskati želeno podredje v nizu ne glede na velikost, uporabite to metodo.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "I Think Therefore I Am", "think",vbTextCompare) MsgBox Pos End Sub
Tukaj, vbTextCompare se uporablja za iskanje podreza, ki je občutljiv na velikost črk.
➤Press F5
Rezultat :
Nato boste dobili naslednje Polje za sporočila ki vsebuje položaj "razmišljati" podreza.
Enako lahko storite z naslednjo kodo.
Možnost Primerjaj besedilo Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "I Think Therefore I Am", "think") MsgBox Pos End Sub
Tukaj, Možnost Primerjava besedila bo našel podreza, ki je občutljiv na velikost črk.
➤Press F5
Rezultat :
Nato boste dobili naslednje Polje za sporočila ki vsebuje položaj "razmišljati" podreza.
Metoda-3: Uporaba funkcije InstrRev v VBA
Tukaj bom prikazal način iskanja podreza s konca niza.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu . Metoda-1
Sub FindFromEnd() MsgBox InStrRev("Mislim, torej sem", "I") End Sub
InStrRev poišče podrejeni niz z desne strani namesto z leve.
➤Press F5
Rezultat :
Nato boste dobili naslednje Polje za sporočila ki vsebuje položaj drugega "I" podreza z desne strani.
Metoda-4: Iskanje položaja podreza v nizu v območju podatkov
Če želite poiskati posebni znak "@" v Id e-pošte potem sledite tej metodi. Tu sem dodal Stolpec položaja v ta namen.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Funkcija FindSubstring(vrednost kot območje) kot celoštevilsko število Dim Pos kot celoštevilsko število Pos = InStr(1, vrednost, "@") FindSubstring = Pos End Function
Ustvaril bo funkcijo z imenom FindSubstring (lahko uporabite katero koli drugo ime)
vrednost je referenca na celico, ki vsebuje niz, in je deklarirana kot Razpon .
Korak-02 :
➤Izberite izhod Celica E5
➤Type naslednjo funkcijo (ki jo je ustvaril VBA )
=Izvedi podrejeno besedilo(D5)
D5 je celica, ki vsebuje niz.
➤Press VSTOP
➤Potegnite navzdol Ročaj za polnjenje Orodje
Rezultat :
Nato boste dobili položaje posebnega znaka " @" v Id e-pošte .
Podobna branja:
- Kako poiskati niz v celici z uporabo VBA v Excelu (2 metodi)
- Iskanje naslednjega z uporabo VBA v Excelu (2 primera)
- Kako najti niz z VBA v Excelu (8 primerov)
- VBA Poiščite zadnjo vrstico v Excelu (5 načinov)
Metoda-5: Preverjanje določenega podstira v nizu v območju podatkov
Recimo, da želite napisati Prehod ali Neuspešno dopisovanje k imenom učencev glede na Stolpec z rezultati kjer je Prehod ali Fail je zapisan v oklepaju. Če želite najti ta podreženj v Stolpec z rezultati in ga zapišite v Stolpec Pass ali Fail uporabite to metodo.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Sub CheckSubstring() 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 = "Failed" End If Next cell End Sub
V tem primeru je območje celic C5:C10 ki je Stolpec z rezultati
InStr(cell.value, "Pass")> 0 je pogoj, v katerem je število večje od nič (kadar celica vsebuje "Pass" ), potem se bo naslednja vrstica nadaljevala in v sosednji celici prikazala rezultat kot Sprejeto .
Če pogoj postane napačen, pomeni, da celica ne vsebuje nobenega "Pass" nato vrstico pod Drugače se izvede in v sosednji celici poda izhodno vrednost kot Neuspešno .
Ta zanka se nadaljuje za vsako celico.
➤Press F5
Rezultat :
Nato boste v oknu Sprejeti ali zavrniti stolpec.
Metoda-6: Preverjanje določenega podreza v nizu in izločanje podatkov
Pokazal bom, kako najti učence z imenom Michael v Stolpec z imenom učenca in izluščite ustrezne podatke z uporabo VBA pri tej metodi.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-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")> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i).value End If Next i End Sub
Tu sem uporabil B100 kot Razpon aktivnega lista vendar lahko uporabite poljubno območje glede na svojo uporabo.
InStr(1, Range("B" & i), "Michael")> 0
je pogoj za preverjanje, ali je celica v stolpcu B vsebuje Michael
Razpon("E" & icount & ":G" & icount)
je območje, v katerem želite imeti izhodne podatke, in Razpon("B" & i & ":D" & i).value
bodo podane vrednosti iz stolpcev B na . D .
➤Press F5
Rezultat :
Nato boste za učence z imenom dobili naslednje izpisane podatke Michael .
Metoda-7: Iskanje podreza za besedo
Če želite poiskati podrejeni niz kot besedo, uporabite to metodo.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Sub Stringforword() Dim j As Integer j = InStr("Tukaj je, kaj sem", "je") If j = 0 Then MsgBox "Beseda ni najdena" Else MsgBox "Beseda najdena na položaju: " & j End If End Sub
Preveri, ali niz vsebuje je . in nato bo njegov položaj podan
➤Press F5
Rezultat :
Nato se bo prikazalo naslednje okno s sporočilom, ki prikazuje beseda najdemo v položaju: 6 (položaj je . ).
To kodo lahko preizkusite za besedo, ki je ni v nizu.
➤Vtipkajte naslednjo kodo
Sub Stringforword() Dim j As Integer j = InStr("Tukaj sem", "sem") If j = 0 Then MsgBox "Beseda ni najdena" Else MsgBox "Beseda najdena v položaju: " & j End If End Sub
➤Press F5
Rezultat :
Nato se bo prikazalo naslednje okno s sporočilom, ki prikazuje beseda ni bila najdena .
Metoda-8: Uporaba funkcij Instr in LEFT
Tukaj bom razložil način iskanja položaja podreza v nizu in izločanja besedil pred tem podrezem z uporabo VBA in . funkcija LEVA .
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Sub InstrandLeft() Dim txt As String Dim j As Long txt = "Tukaj sem" j = InStr(txt, "je") MsgBox Left(txt, j - 1) End Sub
j = InStr(txt, "je")
je položaj podreza je . in . Levo(txt, j - 1)
bo izločil podrejene nize pred je . .
➤Press F5
Rezultat :
Nato se prikaže naslednje okno s sporočilom, ki prikazuje Tukaj (podrejeni niz pred je . ).
Metoda-9: Krepko označevanje določenega podreza v nizu
Ocene pred oklepaji v oklepaju lahko krepko označite v Stolpec z rezultati po tej metodi.
Korak-01 :
➤Sledovati Korak-01 na spletnem mestu Metoda-1
Sub Boldingsubstring() Dim Cell As Range Dim txt As Integer Za vsako celico v izboru txtCount = Len(Cell) txt = InStr(1, Cell, "(") Cell.Characters(1, txt - 1).Font.Bold = True Next Cell End Sub
txt = InStr(1, celica, "(")
vrne položaj prvega oklepaja in Cell.Characters(1, txt - 1).Font.Bold
bo podrejeni niz pred prvim oklepajem Krepko .
Korak-02 :
➤Izberite Stolpec z rezultati
➤Najdi na Razvijalec Tab>> Makroji Možnost
Nato a Makro Prikaže se čarovnik.
➤Izberite krepki podredni niz (kodno ime VBA) in nato Spustite .
Rezultat :
Po tem so ocene v Rezultat Stolpec bodo krepko označeni.
Oddelek za prakso
Za samostojno izvajanje prakse smo pripravili Praksa kot spodaj v listu z imenom Praksa . Prosimo, da to storite sami.
Zaključek
V tem članku sem poskušal zajeti najlažji način iskanja podreza z uporabo VBA v Excelu učinkovito. Upam, da vam bo koristilo. Če imate kakršne koli predloge ali vprašanja, jih lahko delite z nami.