#1
|
|||
|
|||
Send Userform Text to Bookmark
I'm trying to do something similar to https://www.msofficeforums.com/word-...nt-header.html (at least it sounds similar) and also running into the same type of problems. I have userform that pops up when the template is opened but the command button leads to runtime error 5941
Code:
Private Sub CommandButton1_Click() With ActiveDocument .Bookmarks("Text1").Range.Text = TextBox1 .InsertBefore TextBox1 .Bookmarks("Text2").Range.Text = TextBox2 .InsertBefore TextBox2 End With UserForm1.Hide End Sub Code:
Sub autonew() ' ' autonew Macro ' ' UserForm1.Show End Sub Last edited by macropod; 07-29-2015 at 05:55 PM. Reason: Split from unrelated thread |
#2
|
||||
|
||||
I don't get error 5941 but both your .InsertBefore methods quite understandably generate error 438, as they have no Range context. Besides, which, I can't see why you'd want both '.Text = TextBox1' and '.InsertBefore TextBox1', since it seems you're trying to do the same thing with both (i.e. duplicating the output). Furthermore, there are better ways to populate bookmarks; see, for example: https://www.msofficeforums.com/word-vba/21845-cross-referencing-bookmarks-populated-userform-word-2010-a.html#post67058
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
I read your input over and changed to this
Code:
Private Sub CommandButton1_Click() With ActiveDocument .Range.Text = TextBox1 End With UserForm1.Hide End Sub |
#4
|
||||
|
||||
I can't see that what you've done is anything like the link I provided suggests. And no, you don't have to use bookmarks but, whatever method you use has to be specific - you could write to a content control, a custom document property, a table cell, a specified paragraph (via its index #), etc., etc.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
Hi: I worked on that before I found the thread with the link. Not sure why I did not see your post??
The code from the link - Sub UpdateBookmark - It seem as though a custom document property would be the best, but I don't see how it ties into the code from the link? Reviewing your link I was hoping this would work Code:
Private Sub CommandButton1_Click() Dim MyProp As Range Dim StrTxt As String With ActiveDocument Set MyProp = TextBox1 MyProp.Text = StrTxt .Fields.Update End With UserForm1.Hide End Sub On the bright side my error code is now 13 so at least that is going down. I set up a DOCPROPERTY called MyProp as the placeholder in the word document |
#6
|
||||
|
||||
Quote:
• Custom Document Properties, see: http://support.microsoft.com/kb/212618/ • Document Variables, see: http://support.microsoft.com/kb/306281/ Quote:
I think you need to spend a little time working out how one uses the various methods available for populating a document. When you decide what you want to work with, be that a bookmark, a content control, a custom document property, a table cell, a specified paragraph (via its index #), etc., then stick with code related to that method rather than trying to use code designed for something else. As for: Quote:
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Moving Selected Items from a Multiselect Listbox on a userform to a bookmark in Word | marksm33 | Word VBA | 3 | 01-15-2015 07:55 PM |
send a string from Excel UserForm to Word | saltlakebuffalo | Excel Programming | 1 | 02-10-2014 11:01 PM |
Repeating Bookmark Text | BECKTHOMO | Word | 1 | 03-27-2012 08:34 PM |
Word 2003 - IncludeText Does Not Include Bookmark Text if in a Form Text Control | skarden | Word | 1 | 12-12-2011 10:39 PM |
delete all bookmark text | hklein | Word VBA | 4 | 08-10-2011 04:33 AM |