我需要生成Word 2010中编程的书签,与头名作为书签名称。
我有以下的代码,这使得书签的词,但书签名称保持相同的字符串Heading 1
只适用于名义变量:
Sub bookmarking()
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=" Heading 1"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End Sub
取而代之的是的Heading 1
的名义变量,我想从剪贴板中的内容。 请帮我更换Heading 1
与剪贴板中的内容。
使用DataObject
从Microsoft Forms 2.0 Object Library
:
Private Function GetClipboardData()
Dim objDataObject As MSForms.DataObject ''need to add reference in Tools |References
Set objDataObject = New MSForms.DataObject
objDataObject.GetFromClipboard
On Error Resume Next
GetClipboardData = objDataObject.GetText
If Err.Number = -2147221404 Then
MsgBox "Error: current clipboard data is either empty or is not text. Clibpoard must contain text."
End If
End Function
然后,备份你的主代码,具有书签名称是这个剪贴板数据:
...
.Add Range:=Selection.Range, Name:=GetClipboardData()
...
这是一个良好的开端吗? 有根据您的需要可能是更稳健的其他方式。 然而,这应该成为很好的证明了概念。
文章来源: Generate bookmarks in Word 2010 programmatically, with the header name as the bookmark name