【问题标题】:Programmatically delete hyperlinks without applying hyperlink style以编程方式删除超链接而不应用超链接样式
【发布时间】:2013-12-02 01:41:48
【问题描述】:

我在工作表上有一组超链接。每个链接中的文本都是 Arial 8pt,并且居中。我知道我可以删除如下链接:

Range("a1:a10").Hyperlinks.Delete

但是,我在删除链接时遇到了字体更改问题;当我运行此删除操作时,每个单元格中的文本都设置为 Arial 10pt 并左对齐。

我检查了此工作簿的超链接样式,它设置为 Arial 10pt。当样式表明它们应该是 10pt 时,我不确定为什么超链接是 8pt。

无论如何,我试图弄清楚在删除超链接后如何保留单元格的现有格式,使其保持 8pt 并居中。我试过这个:

Sub removeHyperlinks()

Dim rng As Range
Dim subrng As Range


Set rng = ThisWorkbook.Sheets("myData").Range("a1:a10")

For Each subrng In rng
    subrng.Copy
    subrng.Hyperlinks.Delete
    subrng.PasteSpecial Paste:=xlPasteFormats
Next


End Sub

但超链接的单元格最终仍为 Arial 10pt,左对齐。如何保持格式不变?

【问题讨论】:

  • 我知道,当超链接自行格式化时,您可以“撤消”,并且需要后退一步才能离开打字。您可以尝试添加撤消吗? stackoverflow.com/questions/339228/… 或 stackoverflow.com/questions/7004754/…
  • 我从来没有这样做过,所以我只是把它作为一种可能性扔掉,仅供参考。
  • 我刚刚尝试在subrng.Hyperlinks.Delete 行之后添加Application.Undo,结果出现Method 'Undo' of object '_Application' failed 错误。

标签: vba excel


【解决方案1】:

这是一种解决方法:

Dim fntsize As Integer

For Each subrng In rng
    fntsize = subrng.Font.Size
    subrng.Hyperlinks.Delete
    subrng.Font.Size = fntsize
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 2015-10-19
    • 2018-06-19
    • 2011-12-21
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多