【发布时间】:2017-01-27 19:58:18
【问题描述】:
我有这个 vba 子程序,旨在用 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
谢谢
【问题讨论】:
-
我要做的是:1)复制之前的单元格格式; 2) 执行您的操作; 3)将单元格的格式粘贴到修改后的格式中。为此,在手动执行此操作的同时录制宏并获取代码以使其适应您的 For 循环就足够了。