Kazalo
Izvajanje VBA je najučinkovitejša, najhitrejša in najvarnejša metoda za izvedbo katere koli operacije v Excelu. V tem članku vam bomo pokazali, kako preveriti, ali niz vsebuje drug niz v Excelu z uporabo VBA .
Prenesi predlogo za prakso
Brezplačno praktično predlogo Excel lahko prenesete s tega mesta.
VBA za preverjanje, ali niz vsebuje vrednost.xlsm
6 metod v VBA za preverjanje, ali niz vsebuje drug niz v Excelu
V tem razdelku boste našli 6 učinkovitih metod za izvajanje VBA za preverjanje, ali niz vsebuje drug niz ali ne.
1. VBA za preverjanje, ali niz vsebuje podreza
Spodaj je primer funkcija InStr za ugotavljanje, ali niz vsebuje podredje v Excelu.
Koraki:
- Pritisnite Alt + F11 na tipkovnici ali odprite zavihek Razvijalec -> Visual Basic da odprete Urejevalnik Visual Basic .
- V pojavnem oknu kode v menijski vrstici kliknite Vstavljanje -> Modul .
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Public Sub ContainSub() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Hulk")> 0 Then MsgBox "Film najden" Else MsgBox "Film ni najden" End If End Sub
Vaša koda je zdaj pripravljena za zagon.
- Spustite makro.
Če je vaš niz vsebuje podrejeni niz potem bo prikazano najdeno ujemanje, v nasprotnem primeru pa ne bo vrnjeno nobeno najdeno ujemanje.
V našem primeru smo želeli ugotoviti, ali je naš primarni niz " Film: Iron Man, Batman, Superman, Spiderman, Thor " vsebuje besedo " Hulk " ali ne. Ker ne, dobimo Film ni najden rezultat.
2. VBA za preverjanje, ali niz vsebuje številko
Iskanje, ali nizi vsebujejo številke ali ne, lahko izvedete z uporabo VBA koda.
Oglejte si naslednji primer, v katerem bomo ugotovili, kateri nizi vsebujejo številke z imeni filmov.
Koraki za preverjanje, ali nizi vsebujejo številke z VBA so navedeni v nadaljevanju.
Koraki:
- Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Funkcija SearchNumbers(oRng As Range) As Boolean Dim bSearchNumbers As Boolean, i As Long bSearchNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bSearchNumbers = True Exit For End If Next SearchNumbers = bSearchNumbers End Function
- To ni podpostopek za VBA program za zagon, se ustvari Uporabniško opredeljena funkcija (UDF), ki ga bomo poklicali v našem delovnem listu za izvedbo opravila. Po pisanju kode torej namesto klika na Spustite kliknite na gumb Shrani v menijski vrstici, da shranite makro datoteko.
- Zdaj se vrnite na delovni list, ki vas zanima, in zapišite uporabniško definirano funkcijo, ki ste jo pravkar ustvarili v VBA koda ( SearchNumber , v prvi vrstici kode) in znotraj oklepajev funkcije vnesite referenčno številko celice niza, ki ima vodilne številke (npr. Celica B5 ).
- Pritisnite Vnesite .
Dobili boste logaritemsko vrednost ( TRUE ali Lažno ), če niz v celici vsebuje številke, boste dobili TRUE , v nasprotnem primeru FALSE .
- Povlecite celico navzdol za Ročaj za polnjenje uporabiti formulo za preostale celice in preveriti, kateri niz vsebuje številke in kateri ne.
3. VBA za izvleček številk iz niza
V zgornjem razdelku smo se naučili, kako preveriti, ali niz vsebuje številke ali ne. V tem razdelku pa se bomo naučili, kako izločiti te številke in jih postaviti v drugo celico s spodnjim primerom.
Koraki za preverjanje, ali nizi vsebujejo številke, in njihovo izločanje z VBA so navedeni v nadaljevanju.
Koraki:
- Odpri Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Uporabniški obrazec tokrat z zavihka Vstavi v oknu kode.
- Od pojavila se je Zbirka orodij , povleci in spusti CommandButton v Uporabniški obrazec .
- Dvakrat kliknite na gumb, kopirajte naslednjo kodo in jo prilepite.
Private Sub CommandButton1_Click() Worksheets("Number").Range("C2:C15").ClearContents checkNumber (Worksheets("Number").Range("B2:B15")) End Sub Sub checkNumber(objRange As Range) Dim myAccessary As Variant Dim i As Long Dim iRow As Long iRow = 2 For Each myAccessary In objRange For i = 1 To Len(myAccessary.Value) If IsNumeric(Mid(myAccessary.Value, i,1)) Then If Trim(objRange.Cells(objRange.Row - 1, 2)) "" Then objRange.Cells(iRow - 1, 2) = _ objRange.Cells(iRow - 1, 2) & Mid(myAccessary.Text, i, 1) Else objRange.Cells(iRow - 1, 2) = Mid(myAccessary.Text, i, 1) End If End If Next iRow = iRow + 1Naslednja myAccessary Konec Sub
- Spustite kodo in preusmeril vas bo na želeni delovni list.
- Kliknite gumb za ukaz in iz niza boste dobili izpisano številko.
4. VBA za preverjanje, ali niz vsebuje določeno črko
Ta metoda je skoraj podobna metodi preverjanja podreza v nizu.
Spodaj je InStr funkcijo za iskanje, ali niz vsebuje določeno črko v Excelu.
Koraki:
- Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Public Sub ContainChar() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Z")> 0 Then MsgBox "Črka najdena" Else MsgBox "Črka ni najdena" End If End Sub
Vaša koda je zdaj pripravljena za zagon.
- Spustite program. Če je vaš niz vsebuje črko potem bo prikazano najdeno ujemanje, v nasprotnem primeru pa ne bo vrnjeno nobeno najdeno ujemanje.
V našem primeru smo želeli ugotoviti, ali je naš primarni niz " Film: Iron Man, Batman, Superman, Spiderman, Thor " vsebuje črko " Z " ali ne. Ker ne, dobimo Pismo ni bilo najdeno rezultat.
5. VBA za preverjanje, ali območje nizov vsebuje drug niz
Naučili smo se, kako preveriti, ali dani niz vsebuje drug niz ali ne. V tem razdelku pa se bomo naučili, kako preveriti, ali območje nizov vsebuje podreza ali ne, in sicer z naslednjim naborom podatkov kot primerom.
Koraki:
- Odpri Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If End Sub
Vaša koda je zdaj pripravljena za zagon.
- Spustite kodo.
Če je vaš obseg niz vsebuje podrejeni niz potem bo prikazano najdeno ujemanje, v nasprotnem primeru pa ne bo vrnjeno nobeno najdeno ujemanje.
6. VBA za izvleček nizov iz niza
V tem razdelku bomo videli, kako preveriti, ali nizi vsebujejo določene podnitve, in jih izluščiti v drugo celico.
Pridobili bomo podatke o imenih, ki se začnejo z " Chris " iz naslednjega nabora podatkov.
Koraki :
- Odpri Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Sub SearchSub() Dim lastrow As Long Dim i As Integer, count As Integer lastrow = ActiveSheet.Range("A30000").End(xlUp).Row For i = 1 To lastrow If InStr(1, LCase(Range("C" & i)), "Chris") 0 Then count = count + 1 Range("F" & count & ":H" & count) = Range("B" & i & ":D" & i).Value End If Next i End Sub
Vaša koda je zdaj pripravljena za zagon.
- Spustite kodo.
Samo imena, ki se začnejo z " Chris " bodo shranjeni v vnaprej določenih celicah.