Tartalomjegyzék
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.