[VBA] InsertFIle enclosed bookmark

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Maarten Kroon
  • Registratie: Maart 2006
  • Laatst online: 04-04 16:53
Ik probeer de tekst uit een word file te inserten in een bestand om er vervolgens een enclosed bookmark om heen te zetten. Het inserten v.d. teks lukt zonder problemen, echter niet binnen een enclosed bookmark, in plaats daarvan krijg ik een placeholder bookmark aan het begin van de inserted tekst.

Hier mijn code:

Dim bmRange As Range
Set bmRange = ActiveDocument.Bookmarks("testBm").Range
bmRange.Select
Selection.Range.InsertFile FileName:=ActiveDocument.AttachedTemplate.Path & "testDoc.docx"
ActiveDocument.Bookmarks.Add "testBm", bmRange

Hopelijk kan iemand mij vertellen wat ik hier fout doe?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik zou in ieder geval ie Select weglaten, als in http://word.mvps.org/faqs...sertingTextAtBookmark.htm

Lijkt me ook een beetje veel om een heel document erin te zetten? :?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Maarten Kroon
  • Registratie: Maart 2006
  • Laatst online: 04-04 16:53
pedorus schreef op maandag 06 februari 2012 @ 14:02:
Ik zou in ieder geval ie Select weglaten, als in http://word.mvps.org/faqs...sertingTextAtBookmark.htm

Lijkt me ook een beetje veel om een heel document erin te zetten? :?
Die link die kende ik al, echter je kunt hier een String instoppen en dat wordt enclosed. In mijn geval gaat het om de inhoud van een Word document dat enclosed moet worden. Dat is wel wat veel maar moet volgens mij wel wat kunnen.

Ik kan de inhoud van het Word document niet in een String stoppen zonder de opmaak te verliezen.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Of/hoe het in VBA kan weet ik niet zeker (nu geen tijd om over na te denken), maar je zou de 'handmatige' manier kunnen nabootsen:
- maak een bookmark met een eenvoudige tekst zoals $$,
- voeg Word-doc in tussen de twee karakters,
- verwijder eerste en laatste karakter.

Heel fout, maar zo werkt het (ook) handmatig goed :+

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Verwijderd

ongetest, volgens mij gaat het goed als je lijn 2 & 3 samenvoegt tot
Visual Basic:
1
bmrange.InsertFile FileName:=ActiveDocument.AttachedTemplate.Path & "testDoc.docx"

Acties:
  • 0 Henk 'm!

  • Maarten Kroon
  • Registratie: Maart 2006
  • Laatst online: 04-04 16:53
Probleem is vorige week al opgelost, de oplossing staat hieronder voor de geïnteresseerde:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Dim rText As Range
    Dim sDocument As String
    sDocument = ActiveDocument.AttachedTemplate.Path & "\MyFolder\" & "MyDocument.docx"
    sDocument = Chr(34) & sDocument & Chr(34)
    Dim Counter As Integer
    For Counter = 1 To Len(sDocument)
        If Mid(sDocument, Counter, 1) = Chr(92) Then
                sDocument = Mid(sDocument, 1, Counter) & "\" & Mid(sDocument, Counter + 1, (Len(sDocument) - Counter))
                Counter = Counter + 1
        End If
    Next
    Set rText = ActiveDocument.Bookmarks("MyBookmark").Range
    rText.Fields.Add rText, wdFieldIncludeText, sDocument, False
    rText.MoveEnd wdCharacter, 1
    ActiveDocument.Bookmarks.Add "MyBookmark", rText
    ActiveDocument.Fields.Update

Acties:
  • 0 Henk 'm!

Verwijderd

hier voeg je eerst een veld toe aan het bereik van de bladwijzer om deze zo te bewaren. niet helemaal netjes, maar het werkt.

de insertfile methode gedraagt zich anders dan bij het gewoon invoegen van tekst in een bladwijzerbereik.

en in de plaats van het for loopje kan je toch gewoon replace gebruiken?
Pagina: 1