< návrat zpět

MS Excel


Téma: Vypis hledaneho retezce pomoci reg. vyrazu rss

Zaslal/a 9.12.2016 17:54

Bunka obsahuje dlouhy text (vcetne mezer) a ja potrebuji z tohoto textu vypsat retezec odpovidajici danemu regularnimu vyrazu (8ciferne cislo), pokud jej bunka skutecne obsahuje. Jakym prikazem toho docilim ve VBA? Umim to otestovat, ale neumim to vypsat?
Moc diky

Zaslat odpověď >

Strana:  1 2   další »
#033747
avatar
No ak bunka obsahuje ten text(8ciferné číslo), tak ho proste napíš(to 8ciferné číslo)
Ak ho neobsahuje, tak nenapíš nič. 4citovat
#033748
avatar
Jasne, ale ja proste nevim, jak ho mam napsat. To cislo bude pokazde jine, takze ja umim otestovat, jestli v te bunce nekde uprostred textu je 8mi mistne cislo, ale pak uz ho neumim vypsat. A nemuzu dohledat, jak to udelat. Jde proste jen o to, kde je to konkretni cislo ulozene...

if regexp.test(cells(1,1)) then cells(1,2)=?????citovat
icon #033749
eLCHa
cyklus nebo regex?

co znamená umím to otestovat?citovat
#033750
avatar
Poznat, jestli text v bunce obsahuje 8mi mistne cislocitovat
#033751
avatar
Zdravim,

Sub TestRegExp()
' Z retezcu ve sloupci A vypise osmiciferne cislo do vedlejsi bunky
Dim r As Range, i As Long

With CreateObject("VBScript.regexp")
.Global = True
.Pattern = "(\d{8})"
For Each r In Range("A1", Range("A" & Rows.Count).End(xlUp))
If .test(r.Value) Then
For i = 0 To .Execute(r.Value).Count - 1
r(, i + 2).Value = .Execute(r.Value)(i).submatches(0)
Next i
End If
Next r
End With
End Sub


sydcitovat
#033752
avatar
No jeden by si myslel, že DANÝ výraz(8ciferné číslo) je napríklad "12345678". No potom teda tento HĽADANÝ reťazec("12345678") proste vypíše.
No ale keď má niekto problém s vyjadrovaním....citovat
#033753
avatar
(mimochodem i clanek zde na wall http://wall.cz/excel-navod/regularni-vyrazy-v-excelu)

marjankaj napsal/a:

No jeden by si myslel, že DANÝ výraz(8ciferné číslo) je napríklad "12345678". No potom teda tento HĽADANÝ reťazec("12345678") proste vypíše.

No, jestli mi jeste oci dobre slouzi, uzivatel prece nechce vyhledat 12345678, nybrz jakekoliv (dopredu nezname) osmimistne cislo z retezce (zrejme) o 'x' znacich, mezi nimiz muze (treba) byt 'y' 'z'-mistnych cisel. A kod vyse to doufam provede. Nic vic nic min.

s.citovat
icon #033755
eLCHa
Poznat, jestli text v bunce obsahuje 8mi mistne cislo

Tazatel jako vy si prostě nezaslouží pomoct. Bylo by od vás slušné napsat co už jste vyzkoušel a jak jste toho poznání dosáhl. Protože já nerozumím tomu, že dokážete poznat jestli tam je, ale neumíte to vypsat. Ty mi prostě hlava nebere.

Naštěstí pro vás vám syd odpověď poskytl.citovat
#033756
avatar
@syd
No podľa mňa "daný výraz" nie je neznáme číslo. To oznámil až dodatočne, že to myslel inak. Ale ja neviem ako niekto myslí. Co je psáno, to je dáno.citovat
#033758
avatar

marjankaj napsal/a:

No jeden by si myslel, že DANÝ výraz(8ciferné číslo) je napríklad "12345678". No potom teda tento HĽADANÝ reťazec("12345678") proste vypíše.
No ale keď má niekto problém s vyjadrovaním....


Omlouvam se, v zavorce vypadlo slovicko "jakekoli" 8mi ciferne cislo.

Velmi dekuji syd, presne pochopil, jak jsem to myslel a funguje bezvadne

To, ze to umim otestovat, znamena, ze umim dostat logickou hodnotu True , False podle toho, zda nekde v textu v bunce je obsazeno jakekoli 8mi ciferne cislo, jen jsem to cislo neumel pak vypsat.citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje