以编程方式在Word 2010中生成书签,标题名称为书签名称

时间:2012-07-04 18:16:08

标签: vba ms-word word-vba word-2010

Picture of the document

我需要以编程方式在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

1 个答案:

答案 0 :(得分: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()
...

这对你来说是一个好的开始吗?根据您的需求,还有其他方法可能更强大。然而,这应该是一个很好的概念证明。