【问题标题】:VBA: Adding styles to hyperlinks in wordVBA:为word中的超链接添加样式
【发布时间】:2018-11-29 18:24:51
【问题描述】:

我正在尝试制作一个宏来根据级别添加具有不同样式的超链接,每个链接在表格中的新行上。

  1. hyperlinktext1 (sub style1) (即粗体和大小 16)

    1.1 hyperlinktext2 (sub style2) (即大小14)

我已确保样式存在并且适用于普通文本,但我无法将样式应用于使用 VBA 添加的超链接。

更改样式适用于我出于某种原因手动添加的超链接。

    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
    "file.pdf", SubAddress:="", ScreenTip:="", TextToDisplay:="text1"
    Selection.Style = ActiveDocument.Styles("Sub level1")

    'new row
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.InsertRows 1
    Selection.Collapse Direction:=wdCollapseStart

    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
    "file2.pdf", SubAddress:="", ScreenTip:="", TextToDisplay:="text2"
    Selection.Style = ActiveDocument.Styles("Sub level2")

有什么建议吗?

【问题讨论】:

    标签: vba hyperlink ms-word


    【解决方案1】:

    当您插入超链接时,插入后的选择范围位于超链接的末尾。因此,在您的代码中,当您应用您的样式时,您将其应用到超链接末尾的插入点。

    要获取超链接的范围,以便您可以对其应用样式,您可以移动选择范围的起点,或者更好的是,在插入超链接时捕获超链接。

    在第一种情况下,您将添加该行

    Selection.MoveStart unit:=wdWord, count:=-1
    

    在 add 语句之后和应用样式的行之前。

    执行任务的更好方法如下

    Option explicit
    
    Sub test()
    
        InsertHyperlinkWithStyle Selection.Range, "c:\path_to\file", ActiveDocument.Styles("Sub level1")
    
    End Sub
    
    Sub InsertHyperlinkWithStyle(this_range As Word.Range, this_file_path As String, this_style As Word.Style)
    
    Dim my_hyperlink As Hyperlink
    
        Set my_hyperlink = ActiveDocument.Hyperlinks.Add( _
                            Anchor:=this_range.Duplicate, _
                            Address:=this_file_path, _
                            TextToDisplay:="text1")
        my_hyperlink.Range.Style = this_style
    
    End Sub
    

    【讨论】:

    • 感谢您的输入 Freeflow,但无论我尝试使用您的方法添加哪种样式,链接仍然是 16 号
    • 我怀疑这是一个风格问题。当我检查我的系统时,我发现超链接正确更改为仅当应用的样式是字符样式时才显示应用的样式。如果我应用了段落或链接样式,则包含链接的整个段落将更改以匹配应用于超链接的样式。因此,请检查您希望应用于超链接的样式是否具有正确的字体大小,并且这些样式是字符样式。
    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 2012-08-26
    • 2022-01-17
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多