Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1651
  • Last Modified:

Runtime error 5678 Word cannot find the requested bookmark

Hi,
I have a Macro that is finding a value of a bookmark in the body of a document and I am then changing another value of a bookmark in the header accordingly.
This works fine while destination bookmark is in the body of the document but has the above error if I move the destination bookmark to the header.
Using a recorded macro has the same problem.
It seems even though you are in the header when you run the macro it reverts to only looking at the body.

Can anyone explain why this is? and or give me a solution to the problem.
I see this is close, but having an input box isn't what I have and I don't know the piece I need to add to my code to make it work...

http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Word/Q_22960647.html

Thanks Tony
Dim lngValue As Long
 
'Selection.GoTo What:=wdGoToBookmark, Name:="RM0TotalInclGST"
    Selection.GoTo What:=wdGoToBookmark, Name:="RM0TotalInclGST"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
lngValue = Selection.Text
 
Selection.GoTo What:=wdGoToBookmark, Name:="INVOICETYPE"
 
If Val(lngValue) < 0 Then
Selection.Text = "CREDIT NOTE"
 
Else
Selection.Text = "TAX INVOICE"
End If
 
End Sub

Open in new window

0
Tony303
Asked:
Tony303
1 Solution
 
irudykCommented:
Try the following revised code:
Dim lngValue As Long
 
'Selection.GoTo What:=wdGoToBookmark, Name:="RM0TotalInclGST"
    Selection.GoTo What:=wdGoToBookmark, Name:="RM0TotalInclGST"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
lngValue = Selection.Text
 
'Selection.GoTo What:=wdGoToBookmark, Name:="INVOICETYPE"
ActiveDocument.Bookmarks("INVOICETYPE").Select
 
If Val(lngValue) < 0 Then
Selection.Text = "CREDIT NOTE"
 
Else
Selection.Text = "TAX INVOICE"
End If
 
ActiveWindow.ActivePane.Close
 
End Sub

Open in new window

0
 
Tony303Author Commented:
Hi,
Sorry for the long wait on this one, I guess my spam mail trapped the solution.
Anyway, great thanks, I see the secret is the
ActiveDocument.Bookmarks("INVOICETYPE").Select
and
ActiveWindow.ActivePane.Close

Thanks again

Tony
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now