![]() |
|
|
|
#1
|
|||
|
|||
|
I have a document that has a multilevel list paragraph structure, beginning with paragraph # 1.01 and ending in 9.68. There are 9 chapters/sections, and each paragraph in each section restarts at .01. For example: 1.01, 2.01, 3.01, etc. Most paragraphs are numbered X.XX, but some paragraphs have three digits after the end of the period such as 8.123. I need to create a bookmark for each paragraph and name the bookmark based on the first 4 characters of the paragraph number of the multilevel list. The code below only created bookmarks for those paragraphs ending after "." So for example, there's a bookmark for paragraph "11" after 6.11. Because "11" appears 9 times, the code doesn't run again because it thinks the paragraph number is a duplicate.
How can I tweak the code so there's a bookmark for 1.01, 2.01, 8.123, etc.? Code:
Sub AddBookmarksWithFirstFourCharsOfParagraphNumber()
Dim para As Paragraph
Dim bookmarkName As String
Dim paragraphNum As Long
' Loop through each paragraph in the active document
For Each para In ActiveDocument.Paragraphs
' Check if the paragraph is a list paragraph
If para.Range.ListFormat.ListType <> WdListType.wdListNoNumbering Then
' Get the paragraph number and convert it to a string
paragraphNum = para.Range.ListFormat.ListValue
Dim paragraphNumStr As String
paragraphNumStr = CStr(paragraphNum)
' Generate a bookmark name with the first four characters of the paragraph number
bookmarkName = "Bookmark_" & Left(paragraphNumStr, 4)
' Add a bookmark to the paragraph
ActiveDocument.Bookmarks.Add bookmarkName, para.Range
End If
Next para
End Sub
|
|
#2
|
||||
|
||||
|
Replace
Code:
bookmarkName = "Bookmark_" & Left(paragraphNumStr, 4) Code:
paragraphNumStr = Left(paragraphNumStr, InStr(1, paragraphNumStr, Chr(32))) bookmarkName = "Bookmark_" & Trim(Replace(paragraphNumStr, ".", "_"))
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
|||
|
|||
|
Thank you. The new code didn't work. For example, when I clicked on bookmark 100, it went to a paragraph on pg. 30 but this paragraph isn't part of a multilevel list. I'd like to update the code to reflect two things:
1. Each multilevel list paragraph from 1.01 through 9.68 should have a bookmark. 2. The bookmark name should have the paragraph number in it (i.e., Bookmark_968). I don't know what is wrong with my code. |
|
#4
|
||||
|
||||
|
Your code didn't work because it returns the ListValue and not the ListString. My fault; I should have checked instead of assuming that it worked before. Try the following instead
Code:
Sub AddBookmarksWithCharsOfParagraphNumber()
Dim para As Paragraph
Dim bookmarkName As String
Dim paragraphNum As String
' Loop through each paragraph in the active document
For Each para In ActiveDocument.Paragraphs
' Check if the paragraph is a list paragraph
If para.Range.ListFormat.ListType <> WdListType.wdListNoNumbering Then
' Get the paragraph number and convert it to a string
paragraphNum = para.Range.ListFormat.ListString
' Generate a bookmark name with the first four characters of the paragraph number
bookmarkName = "Bookmark_" & paragraphNum
'paragraphNumStr = Left(paragraphNumStr, InStr(1, paragraphNumStr, Chr(32)))
bookmarkName = "Bookmark_" & Trim(Replace(paragraphNum, ".", "_"))
' Add a bookmark to the paragraph
ActiveDocument.Bookmarks.Add bookmarkName, para.Range
End If
Next para
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Cross-reference with full context a numbered list inside another multilevel list (list style) | MatLcq | Word | 0 | 02-01-2021 06:00 AM |
| Convert multilevel bullet list to multilevel numbered list | scadaman29325 | Word | 2 | 03-27-2020 03:27 PM |
Find word, Insert Paragraph and bookmark
|
gattaca714 | Word VBA | 2 | 03-24-2017 09:23 PM |
Insert Paragraph after each list item - All Lists
|
dan88 | Word VBA | 6 | 05-07-2016 05:13 PM |
| Multilevel lists and paragraph indentation | computerdummy | Word | 2 | 04-27-2012 02:32 PM |