excel - Dynamically Allocate Bookmarks in a Bullet List in Word -
i trying generate bookmark on line below previous bookmark in bullet list such word document starts
- [bookmark1]
and transformed into
- [bookmark1]
- [bookmark2]
- etc.
so can adjust formatting of list line line , input text in list. 1d array level() controls type of bullet point have. bookmarks dynamically created based on dynamically allocated 1d array (called clar()) contains text various points on sheet. program not know how many lines of text array contain until runs. code below run output of program is
- [bookmark1]
will turn (after 6 iterations)
- [boomark6]
so had 1 bookmark called bookmark6 rather 6 in list. attempted use range @ end of previous bookmark not set range @ next bullet point or outside current bookmark. tried expand range using wbnewline , set range @ end of not valid.
dim count integer dim countm integer count = 1 while clar(count) <> "" countm = count - 1 prevbmarkname = "clar" & countm bmarkname = "clar" & count bmarktext = clar(count) if count <> 1 set prevrange = wrddoc.bookmarks(prevbmarkname).range set newrange = prevrange newrange.setrange prevrange.end, prevrange.end activedocument.bookmarks.add "bmarkname", newrange if desclar(count + 1) = "" 'stops program generating blank bullet wrdrange.text = bmarktext wrddoc.bookmarks.add name:=bmarkname, range:=wrdrange level = check1(count) 'used adjust bullet level/type if level = 1 wrdrange.style = wrddoc.styles("sd bullets") if level = 2 wrdrange.style = wrddoc.styles("sd bullets 2") else wrdrange.text = bmarktext & vbnewline wrddoc.bookmarks.add name:=bmarkname, range:=wrdrange level = check1(count) if level = 1 wrdrange.style = wrddoc.styles("sd bullets") if level = 2 wrdrange.style = wrddoc.styles("sd bullets 2") end if else 'only used on first iteration because uses bookmark1 set wrdrange = wrddoc.bookmarks(bmarkname).range wrdrange.text = bmarktext & vbnewline wrddoc.bookmarks.add name:=bmarkname, range:=wrdrange level = check1(count) if level = 1 wrdrange.style = wrddoc.styles("sd bullets") if level = 2 wrdrange.style = wrddoc.styles("sd bullets 2") end if count = count + 1 countm = countm + 1 loop
2 issues:
first, wrdrange
set first time through loop, , can't change after due if count <> 1
test. check of references wrdrange
if count <> 1
.
second, when setting newrange = prevrange
, aren't getting new range - 2 variables same reference. change line set newrange = prevrange
set newrange = prevrange.duplicate
.
Comments
Post a Comment