Hirdetés
- iPhone topik
- Yettel topik
- Samsung Galaxy A56 - megbízható középszerűség
- Google Pixel topik
- Xiaomi 15T Pro - a téma nincs lezárva
- Tesztkört futott a OnePlus Nord CE6
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S20 Ultra 5G - nagy ügy
- Telekom mobilszolgáltatások
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
p5quser
#44115
üzenetére
Szia,
A Split egy eredménytömböt próbál létrehozni, aminek az elemszáma a megtalált elválasztó karakterek száma alapján változik. Ha nem találja meg a karaktert, akkor 1 elemű lesz a tömb, a bemeneti értékkel az első elemben.
A tömb elemszámát az UBOUND() függvény adja meg.
Mielőtt a 3-ik elemet keresnéd meg kell nézned, hogy van-e egyáltalán?If UBound(spl) > 2 then
... 3-ik elemes keresésed
End ifHa jól értelmezem az eredeti felvetésedet, akkor ez a kód jobb eredményt fog adni mint a mostani.
Sub Kereses()
Dim rngSearch As Range 'ez a B oszlop
Dim txSearch As Range 'ez a B oszlop éppen vizsgált cellája lesz
Dim arrWhat() 'ez a G oszlop
Dim txWhat As Variant 'a splittel ide szedjük szét fenti cella tartalmát
Dim match As Long 'találatok számolása
Dim bestmatch As Long 'legtöbb találat
Dim bestWhat As Long 'legtöbb találatot adó keresés pozíciója
Dim i As Long
Dim j As Long
With ActiveSheet
'memóriában tárolt tömbe töltjük a keresendõ kifejezések listáját
'Transpose 1-es index-szel induló tömböt hoz létre
arrWhat = Application.Transpose(.Range("G2:G180"))
Set rngSearch = .Range("B1:B" & .Range("B1").End(xlDown).Row)
For Each txSearch In rngSearch
bestmatch = 0
bestWhat = 0
For i = 1 To UBound(arrWhat)
'keresendõ szavak létrehozása
txWhat = Split(arrWhat(i), " ")
If IsArray(txWhat) Then
match = 0
'Split mindig 0-ás index-szel hozza létre a tömböt
For j = 0 To UBound(txWhat)
match = match - (InStr(1, UCase(txSearch), UCase(txWhat(j))) > 0)
Next j
'ha találtunk több egyezést a korábbiaknál, akkor jegyezzük meg
If match > bestmatch Then
bestmatch = match
bestWhat = i
End If
End If
Next i
'mielõtt új cellára mennénk a C-D oszlopban írjuk ki hogy mi a legjobb egyezésünk
If bestWhat > 0 Then
txSearch.Offset(, 1) = bestmatch
txSearch.Offset(, 2) = arrWhat(bestWhat)
End If
Next txSearch
End With
End Subüdv
Új hozzászólás Aktív témák
- A fociról könnyedén, egy baráti társaságban
- iPhone topik
- E-roller topik
- Battlefield 6
- Milyen légkondit a lakásba?
- BMW topik
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- AliExpress tapasztalatok
- Linux kezdőknek
- Hogyan verte le egy telefon chip az egész laptop ipart? – x86 vs ARM
- További aktív témák...
- Vírusirtó, Antivirus, VPN kulcsok GARANCIÁVAL!
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Microsoft Office 2024 Home Business dobozos
- PC Szervizeket, Gépépítőket keresek B2B szoftver partnerségre (E-számlával)
- AKCIÓ! Apple MacBook Air 13 M1 8GB RAM 256GB SSD notebook garanciával hibátlan működéssel
- AKCIÓ! MSI Gaming Cyborg A15 FHD Gamer notebook - R5 240 16GB DDR5 512GB SSD RTX 5050 8GB
- ÚJ ELEKTROMOS ROLLER és EBIKE kb 50% áron, CSERE IS!!! a és e-bike dobozban, 3 hó gar.:
- HIBÁTLAN iPhone 15 Plus 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4504
- Lenovo 40B0 ThinkPad Thunderbolt 4 Workstation Dock (300W) (40B00300)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50
