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

标签 vba excel

我在工作表上有一组超链接。每个链接中的文本都是 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 结尾,左对齐。如何保持格式不变?

最佳答案

这是解决它的一种方法:

Dim fntsize As Integer

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

关于vba - 以编程方式删除超链接而不应用超链接样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20055706/

相关文章:

ms-access - 使用字典检查多个列表的更优雅的方式?

excel - VBA 中可能的最大十进制值是多少?

arrays - 如何将一维数组复制到另一个一维数组和二维数组?

vba - Application.EnableEvents 默认为 False

regex - 如何从Excel单元格中提取特定字符串?

vba - 在宏中指定 Action 顺序?

vba - 在多页控件中动态添加页面

c# - Excel和C#应用程序之间的进程间通信?

excel - 使用 VBA 方法通过 Bing API 获取距离

mysql - 合并 CSV append header