VBA annak ellenőrzésére, hogy a karakterlánc tartalmaz-e egy másik karakterláncot az Excelben (6 módszer)

  • Ossza Meg Ezt
Hugh West

A honlap megvalósítása VBA a leghatékonyabb, leggyorsabb és legbiztonságosabb módszer bármilyen művelet futtatására az Excelben. Ebben a cikkben megmutatjuk, hogyan ellenőrizhetjük, hogy egy karakterlánc tartalmaz-e egy másik karakterláncot az Excelben a következővel VBA .

Gyakorlat sablon letöltése

Az ingyenes gyakorló Excel-sablont innen töltheti le.

VBA ellenőrizni, hogy a karakterlánc tartalmaz-e Value.xlsm

6 módszer a VBA-ban annak ellenőrzésére, hogy a karakterlánc tartalmaz-e egy másik karakterláncot az Excelben

Az alábbiakban ebben a részben 6 hatékony módszert talál arra vonatkozóan, hogy hogyan lehet megvalósítani VBA hogy ellenőrizze, hogy egy karakterlánc tartalmaz-e egy másik karakterláncot vagy sem.

1. VBA annak ellenőrzésére, hogy a karakterlánc tartalmaz-e részláncot

Az alábbiakban egy példa a az InStr függvény annak megállapítására, hogy egy karakterlánc tartalmaz-e részláncot az Excelben.

Lépések:

  • Sajtó Alt + F11 a billentyűzeten, vagy lépjen a Fejlesztő -> Visual Basic kinyitni Visual Basic szerkesztő .

  • A felugró kódablakban a menüsorban kattintson a Beszúrás -> Modul .

  • A kódablakban másolja ki és illessze be a következő kódot.
 Public Sub ContainSub() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Hulk")> 0 Then MsgBox "Film található" Else MsgBox "Film nem található" End If End Sub 

A kódja most már futtatásra kész.

  • Fuss a makró.

Ha a string tartalmazza a részláncot akkor talál egyezést kap, máskülönben nem talál egyezést.

Példánkban azt akartuk kideríteni, hogy az elsődleges karakterláncunk " Film: Vasember, Batman, Superman, Pókember, Thor " tartalmazza a " Hulk " vagy nem. Mivel nem, kapunk egy Film nem található eredmény.

2. VBA annak ellenőrzésére, hogy a karakterlánc tartalmaz-e számot

A karakterláncok számokat tartalmaznak-e vagy sem, ha a VBA kód.

Nézzük meg a következő példát, ahol meg fogjuk találni, hogy mely karakterláncok tartalmaznak számokat a filmnevekkel együtt.

Lépések annak ellenőrzésére, hogy a karakterláncok tartalmaznak-e számokat a következővel VBA az alábbiakban adjuk meg.

Lépések:

  • Ugyanúgy, mint korábban, nyissa meg Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • A kódablakban másolja ki és illessze be a következő kódot.
 Function 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 
  • Ez nem a következő aleljárás VBA program futtatásához, ez létrehoz egy Felhasználó által meghatározott funkció (UDF), amelyet a munkalapunkon fogunk meghívni a feladat végrehajtásához. Így a kód megírása után ahelyett, hogy a Fuss gombra, kattintson a Mentés gombot a menüsorból a makrófájl mentéséhez.
  • Most menjünk vissza a kívánt munkalapra, és írjuk be az imént létrehozott felhasználó által definiált függvényt a VBA kód ( SearchNumber , a kód első sorában), és a függvény zárójelén belül adja meg a karakterlánc azon cellájának cellahivatkozási számát, amely vezető számokat tartalmaz (pl. B5 sejt ).
  • Sajtó Írja be a címet. .

Egy boolean értéket kap ( TRUE vagy Hamis ), ha a cellában lévő karakterlánc számokat tartalmaz, akkor a következő eredményt kapjuk TRUE , egyébként HAMIS .

  • Húzza lefelé a cellát Töltse ki a fogantyút a képletet a többi cellára is alkalmazza, hogy ellenőrizze, melyik karakterlánc tartalmaz számokat, és melyik nem.

3. VBA számok kivonása a karakterláncból

A fenti szakaszban megtanuljuk, hogyan ellenőrizhetjük, hogy a karakterlánc tartalmaz-e számokat vagy sem. Ebben a szakaszban pedig megtanuljuk, hogyan lehet ezeket a számokat kivenni és egy másik cellába helyezni az alábbi példán keresztül.

Lépések annak ellenőrzésére, hogy a karakterláncok tartalmaznak-e számokat, és kivonjuk őket a VBA az alábbiakban adjuk meg.

Lépések:

  • Nyissa meg a címet. Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a UserForm ezúttal a kódablak Beszúrás lapjáról.
  • A megjelent Szerszámosláda , húzza és ejtse CommandButton a UserForm .

  • Dupla kattintás a gombra, másolja ki a következő kódot, és illessze be.
 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 i iRow = iRow + 1Következő myAccessary End Sub 
  • Fuss a kódot, és a program elviszi Önt a kívánt munkalapra.
  • Kattintson a Parancs gombra és megkapja a kivont számot a karakterláncokból.

4. VBA annak ellenőrzésére, hogy a karakterlánc tartalmaz-e bizonyos betűket

Ez a módszer majdnem olyan, mint a részláncok ellenőrzése egy karakterláncban.

Az alábbiakban a InStr függvényt, hogy megkeresse, hogy egy karakterlánc tartalmaz-e egy bizonyos betűt az Excelben.

Lépések:

  • Ugyanúgy, mint korábban, nyissa meg Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • A kódablakban másolja ki és illessze be a következő kódot.
 Public Sub ContainChar() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Z")> 0 Then MsgBox "Letter found" Else MsgBox "Letter not found" End If End Sub 

A kódod most már futtatásra kész.

  • Fuss a program. Ha a string tartalmazza a betűt akkor talál egyezést kap, máskülönben nem talál egyezést.

Példánkban azt akartuk kideríteni, hogy az elsődleges karakterláncunk " Film: Vasember, Batman, Superman, Pókember, Thor " tartalmazza a " Z " vagy nem. Mivel nem, kapunk egy Nem talált levél eredmény.

5. VBA annak ellenőrzésére, hogy egy karakterlánc tartomány tartalmaz-e egy másik karakterláncot

Megtanultuk, hogyan ellenőrizhetjük, hogy egy adott karakterlánc tartalmaz-e egy másik karakterláncot vagy sem. Ebben a szakaszban azonban azt fogjuk megtanulni, hogyan ellenőrizhetjük, hogy egy karakterlánc-tartomány tartalmaz-e részláncot vagy sem, a következő adatkészlet példáján.

Lépések:

  • Nyissa meg a címet. Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • A kódablakban másolja ki és illessze be a következő kódot.
 Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If End Sub 

A kódja most már futtatásra kész.

  • Fuss a kódot.

Ha az Ön tartománya string tartalmazza a részláncot akkor talál egyezést kap, máskülönben nem talál egyezést.

6. VBA a karakterláncok kivonása a karakterláncból

Ebben a szakaszban azt fogjuk látni, hogyan ellenőrizhetjük, hogy a karakterláncok tartalmaznak-e bizonyos részsorokat, és hogyan vonhatjuk ki azokat egy másik cellában.

Kivonjuk a " Chris " a következő adatkészletből.

Lépések :

  • Nyissa meg a címet. Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • A kódablakban másolja ki és illessze be a következő kódot.
 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 & count & ":H" & count) = Range("B" & i & ":D" & i).Value End If Next i End Sub 

A kódod most már futtatásra kész.

  • Fuss a kódot.

Csak a " Chris " az előre meghatározott cellákban kerül tárolásra.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.