Jeg får runtime error 4605: This method or property is not available because the object refers to a protected area of the document.
Kan mit bookmark evt. være forkert oprettet? Jeg har gjort følgende: 1) menu --> insert --> bookmark. Skrevet "MitBookmark" og valgt Add. 2) I mit Word dokument indsat et field: { MitBookmark }
Jeg gør præcis det samme - Indsæt > Bogmærke, og giver det navnet MitBookmark. Jeg opretter en macro (Alt+F8, vælger opret),og i macroen skriver jeg koden ovenfor, og det hele virker perfekt...
Dokumentet er ikke skrivebeskyttet/beskyttet fra menuen Funktioner > Beskyt dokument?
Jeg startede helt forfra og får ikke længere fejlmeddelelsen! Til gengæld får jeg nu teksten "Nyt indhold af boookmark" flere gange efter hinanden, hvis jeg kører macroen flere gange. Kan det lade sig gøre at erstatte indholdet i samme field uden denne effekt? (jeg benytter i øvrigt Word 2002)
Jeg fik grunden til den tidligere fejl (error 4605): Mit bookmark field { Mitbookmark } lå i samme dokument med nogle protected text form fields { FORMTEXT }. Selvom macroen ikke berører disse text form fields fejler den i Selection.TypeText metoden, sålænge hele dokumentet er i protected mode!! Lidt irriterende eftersom jeg gerne ville beholde mine protected text form fields i mit dokument sammen med diverse bookmarks fields (som er dem jeg gerne vil ændre indholdet af)... hm!
Hmm - det eneste macroen gør er at finde bookmarket, og skriver noget tekst. Hver gang du kører macroen kommer der blot mere tekst efter bookmarket...
Tænk på hvad et bookmark er - blot en navngiven placering i et dokument. Ikke et tekstfelt, men et navngivent sted cursoren kan placeres!
Men hvorfor er det et problem - det jeg bruger bookmarks til er at lade brugeren indtaste et par standard værdier i en uderform (fx. navn og adresse på modtager) inden et nyt dokument oprettes. Disse indsættes så automatisk i diverse bookmarks - jeg kan ikke se i hvilke situationer du har brug for at "udskifte tekst i et bookmark"?
Det lyder som om du mere har brug for nogle felter eller måske noget brevfletning. Alternativt kan du bruge bookmarks og vælge Overskriv, men hvis teksten du vil indsætte ikke har samme længde som den der stod i forvejen får du problemer.
Glem mit sludder om at et bookmark ikke kan indeholde tekst! Marker noget tekst, og angiv det som et bogmærke med navnet MitBookmark
Koden her udskifter indholdet:
Selection.GoTo What:=wdGoToBookmark, Name:="MitBookmark" Selection.TypeText Text:="Nyt Indhold" Selection.HomeKey Unit:=wdLine, Extend:=wdExtend '<-- Pas på With ActiveDocument.Bookmarks .Add Range:=Selection.Range, Name:="MitBookmark" .DefaultSorting = wdSortByName .ShowHidden = False End With
Dette virker, hvis bookmarket står som det første tekst på en linie, og kun fylder en linie. Kan dette ikke opfylde dine krav, så kik på linien med kommentaren Pas på, og ret den til :o)
MEN, jeg er stødt ind i et større problem. Macroen fejler hvis Protection er slået til på mine Text Form Fields! Kan jeg ikke beskytte disse felter samtidig med at jeg opdaterer min Bookmarks? (eller kan jeg temporært fjerne Protection på disse felter { FORMTEXT }, imens Macroen laver opdateringen?)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.