Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB] tekst vervangen in word document lukt niet

Pagina: 1
Acties:

  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03-2023
Hoi,

Ik ben bezig met een programma waarin de ingegeven waarden in een bestaand word document worden geplaatst.
Het zoeken naar de vervangen string gaat goed, alleen de geselecteerde tekst wordt niet vervangen. En na twee dagen al van alles geprobeerd te hebben, weet ik niet meer waar ik moet zoeken.

Ik heb al gezocht op Internet waar het probleem aan kan liggen, maar ik kan niks vinden.

Hier de code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Set objDoc = objWord.Documents.Open(App.Path & "\word\template.doc")
Set objSelection = objWord.Selection

objSelection.Find.ClearFormatting
objSelection.Find.Replacement.ClearFormatting
 With objSelection.Find
 .Text = "TeZoekenTekst"
 .Replacement.Text = "TeVervangenTekst"
 .Forward = True
 .Format = True
 .MatchCase = True
 .Execute Replace:=wdReplaceOne
 End With

objDoc.SaveAs (App.Path & "\Word\" & frmWrkVlg1.txtNaam.Text & ".doc")
objWord.Quit

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
dus eigenlijk zoek je cltr+f functionaliteit. (just kidding je wilt vast in 1x honderden documenten veranderen)

Maarre volgens mij moet het zijn
Visual Basic:
1
.Execute "Replace:=wdReplaceOne"


Mogelijk moet hier ook nog een comma achter en dan nog een waarde, en ik ga er even vanuit dat Replace:=wdReplaceOne opzich correct is.

Deze kennis haal ik trouwens niet direct uit deze functionaliteit maar de opbouw lijkt erg op die van een Inet control waar de aanhalingstekens ook erg belangrijk waren.

Zo niet, tsja dan heb je een tip die niet werkt, maar wie weet kom je nu weer een stapje verder :)

~ Mijn prog blog!


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

wdReplaceOne gaat alleen werken als je ook keurig verwijst naar de Word-bibliotheek. Doe je dat niet dan krijg je een foutmelding als je option explicit aan hebt staan of een niet werkende replace als je dat niet hebt :). Vervang WordReplaceOne eens door 1?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Will_M
  • Registratie: Maart 2004
  • Niet online

Will_M

Intentionally Left Blank

Microsoft Scripting Guys To The Rescue ;)

Nou kan ik wel een mooi VB scriptje voor je gaan maken, maar ik denk dat je er hier zelf ook wel mee uit gaat komen.

Sowieso een erg handige site als je wat met VB Script en tegenwoordig ook Powershell aan het doen bent!!

edit:

Zie nou pas dat je met VB Code bezig bent en niet met VB Script O-)

[ Voor 9% gewijzigd door Will_M op 18-10-2007 20:49 ]

Boldly going forward, 'cause we can't find reverse


  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03-2023
Lustucru,

Bedankt voor je tip. Het toevoegen van de word library was het probleem. Had het ook met die 1 op kunnen lossen.

Thnx

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

En zet dan ajb ook option explicit aan. Het is gewoon ranzig om variabelen impliciet te declareren.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Will_M
  • Registratie: Maart 2004
  • Niet online

Will_M

Intentionally Left Blank

Lustucru schreef op donderdag 18 oktober 2007 @ 21:01:
En zet dan ajb ook option explicit aan. Het is gewoon ranzig om variabelen impliciet te declareren.
Helemaal mee eens, al kunnen m'n collega's m'n bloed ooit drinken nadat ze weer eens wat dachten te moeten editten aan m'n scripts/code.
Doordat ik als laatste actie (ná volledig testen) er vaak een "On Error Resume Next" aan toevoeg in verband met onbekende factoren die een error kunnen genereren werkt de nieuw toegevoegde code vaak niet. Dit zonder dat er foutmeldingen optreden :)

Boldly going forward, 'cause we can't find reverse


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
Wij hakten altijd de vingertjes eraf van diegene die on error resume next gebruikte zonder in-line errorcheck. Zo iemand moet namelijk helemaal niet aan een toetsenbord kunnen komen
;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1