Search and Replace via macro in WORD

  • Onderwerp starter Onderwerp starter MBBS
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

MBBS

Gebruiker
Lid geworden
7 feb 2006
Berichten
269
Ik zoek een macro die "search and replace" doet
Maar deze zou moeten gelinkt zijn aan bv. een word pagina waar de veranderingen in staan zodat de macro niet telkens moet gewijzigd worden.
Ook zou de macro over meerdere pagina's moeten lopen.

De macro zou volgens lijst dus de veranderingen moeten doorvoeren.

bv Lijst

1 = aa wordt 11
2 = bb wordt 22
3 =...
4 =...

100= ...


Deze lijst kan dan telkens worden bijgevuld of aangepast zonder de macro te moeten bijwerken.
 
Indien de termen in aparte kolommen op een apart werkblad (of word bestand) staan is dat niet zo heel moeilijk te verwezenlijken. Echter is nog niet helemaal duidelijk hoe de opzet is die je voor ogen hebt en of dat replacements plaats moeten vinden op alle paginas of, bijvoorbeeld, een beperkte selectie.

Als de vervangingslijst goed word ingegeven op een duidelijke en bruikbare manier is dit zeker mogelijk met een macro, maar de vraagstelling is nu nog wat te algemeen
 
Laatst bewerkt:
Een plat ascii bestand lijkt me eenvoudiger:
per regel het te vervangen woord, dan een pipeline, en dan het woord waarmee het vervangen moet worden.

Code:
sub snb()
  sn=split(createobject("scripting.filesystemobject").opentextfile("E:\OF\vervangingen.txt").readall,vbcrlf)
  for j=0 to ubound(sn)
    sp=split(sn(j),"|")
    thisworkbook.sheets(1).cells.replace sp(0),sp(1)
  next
end sub
 
Laatst bewerkt:
@snb het is voor word, niet excel. grotendeels hetzelfde alleen zijn de boundaries minder eenvoudig. Overigens zou ik ook voorstellen om een excel of text bestand te gebruiken voor de werklijst
 
Nergens staat dat het om vervangen in Word gaat.

Code:
sub snb()
  sn=split(createobject("scripting.filesystemobject").opentextfile("E:\OF\vervangingen.txt").readall,vbcrlf)
  for j=0 to ubound(sn)
    sp=split(sn(j),"|")
    thisDocument.find.execute sp(0),,,,,sp(1)
  next
end sub
 
Ik heb dus een "vervangingen.txt" bestand gemaakt dat eruit ziet als volgt :

a|1
b|2
c|3

en de volgende macro laten lopen.

Sub snb()
sn = Split(CreateObject("scripting.filesystemobject").opentextfile("c:\vervangingen.txt").readall, vbCrLf)
For j = 0 To UBound(sn)
sp = Split(sn(j), "|")
thisworkbook.sheets(1).Cells.Replace sp(0), sp(1)
Next
End Sub



Ik krijg een foutmelding "object vereist".
 
1. zet code tussen code tags
2. geef zinvolle, gedetailleerde feedback: gebruik F8 en geef aan in welke regel je de melding krijgt.
3. kijk eens naar mijn laatste post: gaat het om vervangen in Excel of in Word.
 
Ik dacht dat de vermelding in de titel van de posting voldoende zou zijn.
Search and Replace via macro in WORD

Code:
Sub snb()
sn = Split(CreateObject("scripting.filesystemobject").opentextfile("c:\vervangingen.txt").readall, vbCrLf)
For j = 0 To UBound(sn)
sp = Split(sn(j), "|")
thisworkbook.sheets(1).Cells.Replace sp(0), sp(1)
Next
End Sub

De foutmelding "object vereist" verschijnt met deze regel in het geel : "thisworkbook.sheets(1).Cells.Replace sp(0), sp(1)"

Ik hoop dat dit voldoende is om het probleem op te lossen.

Alvast bedankt voor uw reactie.
 

Bijlagen

Laatst bewerkt:
Foutmeldingen weggewerkt, alles vervangen toegevoegd.
Code:
Sub snb()
  sn = Split(CreateObject("scripting.filesystemobject").opentextfile("C:\vervangingen.txt").readall, vbCrLf)
  On Error Resume Next
  For j = 0 To UBound(sn)
    sp = Split(sn(j), "|")
    ActiveDocument.Content.Find.Execute sp(0), True, , , , , , , , sp(1), 2
    Next
    On Error GoTo 0
End Sub
 
@WB

Je moet natuurlijk wel iets voor de jongelui overlaten....:)

Ivm je website vraag: kijk eens hier
 
PERFECT !!!
Dit maakt mijn dag goed...

Hartelijk dank voor jullie moeite, inspanningen en geduld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan