VBA:无法更改Word文档中超链接的子地址属性



我正在尝试修复Word文档中的超链接。我需要更改某些超链接的SubAddress属性。为此,我循环浏览它们。不幸的是,当我尝试更改任何子地址时,我会收到一个非常奇怪的错误,说method 'subaddress' of object 'hyperlink' failed。显然,发生这种情况是因为VBA本身出现了故障。

Sub FixHyperlinks()
'
' FixHyperlinks Macro
'
'
ActiveDocument.Hyperlinks(1).SubAddress = "some new subaddress"
End Sub

我正在震撼Office 2016 Professional Plus。有人能告诉我这对你有用吗?

它很容易测试。只需创建一个新文档,键入两行一字。使第二行样式为"标题1"。转到第一行,点击CTRK+K(创建超链接(,将其指向"此文档中的一个位置",选择您刚刚创建的标题。不要输入任何地址。现在转到宏,粘贴上面的内容,当插入符号在代码中时按F5键。

用鼠标单击时,超链接工作正常(第一行超链接将带您进入第二行标题(。

尽管是超链接。SubAddress属性应该是一个读/写字符串,即使在Word 2010中写入也会失败。尝试一些类似的东西:

Dim Rng As Range, StrAddr As String, StrTxt As String
With ActiveDocument
With .Hyperlinks(1)
Set Rng = .Range
StrAddr = .Address
StrTxt = .TextToDisplay
.Delete
End With
.Hyperlinks.Add Anchor:=Rng, Address:=StrAddr, SubAddress:="new_sub_address"
End With

此属性存在缺陷。只有当Address属性设置为非空字符串时,它才有效。因此,为了使属性有效(即可修改(,请将Address属性设置为非空字符串(如空格(,然后可以修改SubAddress属性,如:

ActiveDocument.Hyperlinks(1).Address = " "    ' Space
ActiveDocument.Hyperlinks(1).SubAddress = "some new subaddress"   

最新更新