【问题标题】:Word Paste Behavior Not the Same in VBAVBA 中的 Word 粘贴行为不同
【发布时间】:2015-06-29 03:33:59
【问题描述】:

我有一个包含许多嵌入超链接的文档,可以转换为普通超链接。它们是作为可点击 URL 还是纯文本 URL 粘贴的并不重要,只要它实际显示 URL。

例如,我需要将Microsoft Word 更改为http://en.wikipedia.org/wiki/Microsoft_Word(可点击或不可点击)。

在 Word 中,如果我选择超链接,右键单击,选择“复制超链接”,然后粘贴特殊的纯文本,我会得到最佳结果(不可点击的 URL)。如果我记录做同样事情的 VBA 代码,结果就是原始的嵌入链接。我玩过各种选项:关闭智能粘贴、剪切和粘贴、关闭超链接的自动格式化、更改默认粘贴选项,但这些都不会改变我的最终结果。

Sub Replace_w_URLs()
'
' Replace_w_URLs Macro
'
'
Selection.NextField.Select
Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Select
Selection.Copy
Selection.TypeBackspace
Selection.PasteSpecial Link:=False, DataType:=20, Placement:=wdInLine, _
    DisplayAsIcon:=False

End Sub

【问题讨论】:

    标签: vba ms-word paste


    【解决方案1】:

    如果 Word 识别出您粘贴的文本是 URL,则该问题可能是添加超链接的默认行为。如果您在循环中执行此操作,它的作用与将光标放在 URL 的末尾并按空格键一样。

    避免这种情况的最简单方法是仅对超链接范围 本身进行操作,然后更改文本属性。当您更改 HyperLink.Range.Text 时,它具有同时删除超链接的副作用。

    试一试:

    Sub Replace_w_URLs()
    
        Dim url As Range
        Do While Selection.Hyperlinks.Count > 0
            Set url = Hyperlinks(1).Range.Duplicate
            url.Text = Hyperlinks(1).Address
        Loop
    
    End Sub
    

    它应该将您的选择中的所有超链接替换为基础 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多