以编程方式删除超链接而不应用超链接样式

时间:2013-11-18 19:02:40

标签: excel vba excel-vba

我在工作表上有一组超链接。每个链接中的文本是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,左对齐。如何防止格式化更改?

1 个答案:

答案 0 :(得分:1)

以下是解决此问题的一种方法:

Dim fntsize As Integer

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