Excel vba match függvény több keresési feltétellel

Excel vba match függvény több keresési feltétellel
2020-01-12T17:29:19+01:00
2020-01-23T13:25:18+01:00
2022-10-15T21:25:21+02:00
rolland115
excel

Kedves fórumozók!

Egy címeket tartalmazó oszlopból szeretném kiszedni az út, utca, tér etc. szavakat.
egy db feltétellel jól működik, még változóval is - b

Dim a As Variant Dim b As String For i = 2 To 14 On Error Resume Next b = "utca" a = Application.WorksheetFunction.Match(b, Rows(i), 0) If Err <> 0 Then Else Cells(i, a).ClearContents Cells(i, a).Delete Shift:=xlToLeft End If Next i
de azt szeretném, hogy több értéket is felvegyen, ezért próbáltam egyszerűen: 
b= "út" Or "utca"
de természetesen nem működött.
átmenetileg úgy oldottam meg, hogy a ciklus kódrészt egymás után másoltam, annyiszor, ahány féle szót ki kellet venni, csakhogy így annyiszor fut végig, ami sok idő.
próbáltam, hogy az If Err.... és az Else sor közé írom az újabb függvényt a következő szóval, de valamiért nem működött.
megjegyzem, az erroros részt nem is értem hogy működik, innen másoltam, de működik.

Köszönöm előre is.
Mutasd a teljes hozzászólást!
Szia!

Egy kérdés: Abban az oszlopban ezek az értékek egyedül vannak a cellában? Nincs más szöveg mellettük?
A hibavizsgálat azért kell, mert így a függvény hibát okoz, ha nem találja meg az értéket. 
Ha az egyes cellákban csak a keresett szövegek fordulnak elő, akkor használhatod a like operátort, amivel minden cellát csak egyszer kell megnézni.
Azt a szöveget, amiben keresed az előfordulást, beteszed egy változóba:

keresni="út,utca,tér"
 Majd az oszlop celláin kell végigmenned:
Ezután a keresés, a második oszlop értékeiben :

If keresni like "*" & cells(i,2) & "*" then '--ha igaz, akkor van találat
Üdv.
Ps.
Ha külön - külön szeretnéd keresni Match függvénnyel, akkor 

b = "utca" a = Application.WorksheetFunction.Match(b, Rows(i), 0) If Err <> 0 Then Else Cells(i, a).ClearContents Cells(i, a).Delete Shift:=xlToLeft End If
részt kell ismételned az If Err --- Else között!
Mutasd a teljes hozzászólást!

  • Így Működik:

    On Error Resume Next a = Application.WorksheetFunction.Match("utca", Rows(i), 0) If Err <> 0 Then a = Application.WorksheetFunction.Match("út", Rows(i), 0) If Err <> 0 Then Cells(i, a).ClearContents Cells(i, a).Delete Shift:=xlToLeft End If Else Cells(i, a).ClearContents Cells(i, a).Delete Shift:=xlToLeft End If Next i
    A like -val az a gondom, hogy a köztrület neve nem minig ugyan abban az oszlopban van, azért keresni kell.

    Köszönöm a választ
    Mutasd a teljes hozzászólást!
  • Tévedtem mégse működik.
    Viszont a LIKE-val egyszerűbben működik, csak annyi a gond vele, hogy pl. az utca keresendő szó esetén az u vagy t  is jónak veszi, de pontos egyezések jók  csak. Mert pl. a 'József A utca' esetén az 'A' -t is kezeli azt pedig nem kell.
    köszönöm.
    Mutasd a teljes hozzászólást!
  • Szia!

    Mutatnál egy példát, hogyan keresed a LIKE -kal. Mert gondolom, azért nem betűnként szeretnél keresni.

    Üdv.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd