Word VBA - naredi odstavek pred ...
Word VBA - naredi odstavek pred ...
Pozdravljeni,
sestavljam makro v Word VBA pa mi primankuje idej. Kako bi sestavil makro, ki bi v odstavku|celotnem dokumentu pred uro zapisano kot (07:30, 13:00 ali 23:25) naredil odstavek. Izziv sem skušal rešiti tako, da bi poiskal ":" in bi se nato s sendkeys metodo premaknil dva znaka v levo in nato naredil odstavek.
Ima kdo boljšo rešitev?
Hvala že v naprej za pomoč.
sestavljam makro v Word VBA pa mi primankuje idej. Kako bi sestavil makro, ki bi v odstavku|celotnem dokumentu pred uro zapisano kot (07:30, 13:00 ali 23:25) naredil odstavek. Izziv sem skušal rešiti tako, da bi poiskal ":" in bi se nato s sendkeys metodo premaknil dva znaka v levo in nato naredil odstavek.
Ima kdo boljšo rešitev?
Hvala že v naprej za pomoč.
Re: Word VBA - naredi odstavek pred ...
Za rešitev vašega problema ne potrebujete makrov, temveč lahko to dosežete z uporabo funkcije najdi in zamenjaj. Zaukažete ji, naj najde dve cifri, ki jima sledi podpičje in spet dve cifri. To naj zamenja z znakom za novo vrstico, ki mu doda najdeni niz.
Seveda pa je potrebno Wordu nekako zaukazati, kako naj najde dve cifri, presledek... To dosežete z uporabo nadomestnih vzorcev, kot je opisano v blogu:
Če pa iz tega posnamete makro – v kolikor to res potrebujete v kodi – pa dobite sledeč makro:
Seveda pa je potrebno Wordu nekako zaukazati, kako naj najde dve cifri, presledek... To dosežete z uporabo nadomestnih vzorcev, kot je opisano v blogu:
- Napredno iskanje in zamenjevanje v Wordu
- Napredno iskanje in zamenjevanje v Wordu II
- Napredno iskanje in zamenjevanje v Wordu III
- v polje najdi vpišete
Koda: Izberi vse
([0-9][0-9]:[0-9][0-9])
- v polje zamenjaj vpišete
Koda: Izberi vse
^p\1
- obvezno označite, naj Word uporablja nadomestne vzorce.
- Izvedete zamenjavo vseh najdenih elemeentov
Če pa iz tega posnamete makro – v kolikor to res potrebujete v kodi – pa dobite sledeč makro:
Koda: Izberi vse
'
' www.matjazev.net
' avgust 2011
'
Sub PredVseCaseVstaviPraznoVrstico()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([0-9][0-9]:[0-9][0-9])"
.Replacement.Text = "^p\1"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Word VBA - naredi odstavek pred ...
Matjaž,
hvala za prompten odziv in odlično razlago. Razlog zakaj nisem uporabil naprednega iskanja je v tem, da sem napredno iskanje v makru že uporabi in me "muči" ponovna raba, saj si Word očitno zapomni nastavitve predhodnega naprednega iskanja, ne znam pa ga resetirati.
Še kakšna ideja?
hvala za prompten odziv in odlično razlago. Razlog zakaj nisem uporabil naprednega iskanja je v tem, da sem napredno iskanje v makru že uporabi in me "muči" ponovna raba, saj si Word očitno zapomni nastavitve predhodnega naprednega iskanja, ne znam pa ga resetirati.
Še kakšna ideja?
Re: Word VBA - naredi odstavek pred ...
Tale razlog vam pa nekako ne pije vode? Katero nastavitev pa naj bi si Word zapomnil? No iskreno rečeno si zapomni VSE, toda vi mu v novem iskanju pač poveste nove lastnosti in stvar je urejena. V makru, ki sem vam ga zapisal se recimo pobriše format (Format = False), če bi bil prej nastavljen. Ravnotako se pobišejo oz. ponovno nastavijo tudi druge lastnosti...
Če pa tega ne želite, pa morate iskanje in zamenjavo pač napisati ročno. Ti ni neke znanosti, pač morate skozi celoten tekst in iskati cifre. Ko najdete prvo cifro, pogledate naslednje 4 znake in če ustrezajo (torej cigra, cifra, podpičje, cifra, cifra) vstavite znak za novo vrstico, preskočite pet znakov in nadaljujete...
Če pa tega ne želite, pa morate iskanje in zamenjavo pač napisati ročno. Ti ni neke znanosti, pač morate skozi celoten tekst in iskati cifre. Ko najdete prvo cifro, pogledate naslednje 4 znake in če ustrezajo (torej cigra, cifra, podpičje, cifra, cifra) vstavite znak za novo vrstico, preskočite pet znakov in nadaljujete...
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Word VBA - naredi odstavek pred ...
Matjaž,
imate prav, moj razlog ni pil vode zaradi napake v makru. Da, ne odpiram nove teme imam še en izziv s katerim se ukvarjam. Uro v formatu 10:23 bi rad pogojno v Wordu pretvoril v 10.23. V koliko ":" nastopi kje drugje v tekstu ga ne zamenjaj?
Ima kdo kakšno idejo?
imate prav, moj razlog ni pil vode zaradi napake v makru. Da, ne odpiram nove teme imam še en izziv s katerim se ukvarjam. Uro v formatu 10:23 bi rad pogojno v Wordu pretvoril v 10.23. V koliko ":" nastopi kje drugje v tekstu ga ne zamenjaj?
Ima kdo kakšno idejo?
Re: Word VBA - naredi odstavek pred ...
No saj ni neke znanosti... Torej povsem po istem postopku razmišljanja, kot je zapisno zgoraj in z uporabo nadomestnih vzorcev pridemo do sledečega:
To je to...
Koda: Izberi vse
Najdi: ([0-9][0-9]):([0-9][0-9])
Zamenjej z: \1.\2
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Word VBA - naredi odstavek pred ...
Matjaž, če bi bilo življenje tako preprosto, kot vaše rešitve, znanosti ne bi potrebovali. Hvala, delujeadmin napisal/-a: No saj ni neke znanosti... Torej povsem po istem postopku razmišljanja, kot je zapisno zgoraj in z uporabo nadomestnih vzorcev pridemo do sledečega:To je to...Koda: Izberi vse
Najdi: ([0-9][0-9]):([0-9][0-9]) Zamenjej z: \1.\2
Re: Word VBA - naredi odstavek pred ...
Hvala...
V kolikor ste zadovoljni vas prosim da razširite glas... Tako lahko vi pomagate meni (napišite kakšen komentar na http://www.matjazev.net, "polajkajte kakšno mojo stvar', povejte prijateljem in znancem, kje lahko dobijo pomoč...).
Vsak glas šteje!
Hvala
V kolikor ste zadovoljni vas prosim da razširite glas... Tako lahko vi pomagate meni (napišite kakšen komentar na http://www.matjazev.net, "polajkajte kakšno mojo stvar', povejte prijateljem in znancem, kje lahko dobijo pomoč...).
Vsak glas šteje!
Hvala
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator