webForumDet fria alternativet

VBA: Ta fram fält man har satt in m.h.a. bokmärken

.NET

1 svar · 286 visningar · startad av GrodanBoll

Medlem sedan sep. 2001788 inlägg
Frågan#1

Tjo på er :)

Jag har gjort ett formulär som ska användas i Word. I formuläret skriver jag in text i en bunke fält, dessa fält läggs sedan in i bokmärken som jag har lagt i Wordfilen.
Men hur gör jag om jag vill få upp dessa fält i formuläret igen, för t.ex. redigering?
Det funkar ju inte att accessa dem via

ActiveDocument.Bookmarks("Bokmärksnamn").Range.Text

Ska man kanske spara ner alla fält i variabler? Men då funkar de väl inte om man sparar filen, stänger filen och sedan öppnar den igen?

Vore sketatacksam för lite hjälp. :)

/Grodan

Medlem sedan sep. 2001788 inlägg
#2

Hittade efter mycket om och men grejor på nätet.
Jag beskriver lösningen nedan. Alltid hjälper det någon. :)

Man ska alltså se till att inte förlora bokmärket när man lägger in text i det.
Der man behöver göra e att ersätta bokmärkt med texten och sedan trixa in bokmärket igen runt texten mamn la in.

Jag hittade denna kodsnutten som gör det (som jag sedan la i en sub).

Sub UpdateBookmark(BookmarkToUpdate As String, TextToUse As String)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange.Text = TextToUse
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub

Sen hämtar man texten via

strBokmarke = ActiveDocument.Bookmarks("NamnPaBokmarke").Range.Text

/Grodan

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)