VBA删除超链接重置格式

时间:2014-11-25 21:40:13

标签: vba excel-vba hyperlink excel

我有这个vba sub,旨在用HYPERLINK函数替换单元格超链接。但是,currentCell.Hyperlinks.Delete行会导致重置所有单元格格式(字体,字体大小,粗体,下划线,单元格边框,对齐等)。除了手动复制每个单元格属性,然后在删除超链接后重置属性,有没有办法阻止它执行此操作?此外,看起来设置单元格公式也会重置字体,但如果这是唯一搞乱的属性,我可以处理它。

Sub Test()

Dim currentCell As Range
Dim directoryBase As String

directoryBase = "\\examplePath\"

For Each currentCell In Worksheets(2).UsedRange.Cells

    If currentCell.Hyperlinks.Count > 0 Then
        currentCell.Formula = "=HYPERLINK("" + directoryBase + currentCell.Hyperlinks(1).Address + "",""ü"")"
        currentCell.Hyperlinks.Delete
        Debug.Print currentCell.Address
    End If


Next currentCell

End Sub

由于

2 个答案:

答案 0 :(得分:1)

以下是代码中的 Matteo 建议(使用辅助单元格):

Sub dural()
    Dim r As Range, helper As Range
    Set helper = Range("Z100")
    For Each r In ActiveSheet.UsedRange
        If r.Hyperlinks.Count > 0 Then
            If Intersect(r, helper) Is Nothing Then
                r.Copy helper
                r.Hyperlinks.Delete
                helper.Copy
                r.PasteSpecial (xlPasteFormats)
            End If
        End If
    Next r
End Sub

只需在 r.Hyperlinks.Delete

之后将公式制作者插入循环中

答案 1 :(得分:1)

我发现解决方案是打电话

Range.Hyperlinks.Delete

而不是

url

前者清除超链接并保持格式不变。参考这里: https://msdn.microsoft.com/en-us/library/office/ff194741.aspx