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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -