1

文件图片

我需要以编程方式在 Word 2010 中生成书签,将标题名称作为书签名称。

我有以下代码使一个单词成为书签,但书签名称保持不变,因为该字符串Heading 1仅在 name 变量中可用:

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我想要剪贴板中的内容,而不是name 变量。请帮我Heading 1用剪贴板内容替换它。

4

1 回答 1

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()
...

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

于 2012-07-04T22:01:31.907 回答