我有一些代码可以删除范围中的超链接。我想做的是如果单元格文本是vbRed,则保留超链接。下面的代码似乎删除了所有单元格中的所有链接。
Sub RemoveHyperlinks()
Dim rng As Range
Dim cel As Range
Set rng = Range("CourseName")
For Each cel In rng
If cel <> vbRed Then
cel.Hyperlinks.Delete
With rng.Borders
.LineStyle = xlContinuous
.Color = vbBlack
.Weight = xlThin
End With
End If
Next cel
End Sub
感谢您的帮助。
答案 0 :(得分:0)
您的代码检查cel
的值是否为255(vbRed
的值)。您需要像下面那样将检查范围缩小到cel
变量的属性:
If cel.Font.Color <> vbRed
答案 1 :(得分:0)
我建议您先运行以下代码来获取单元格的ColorIndex
。此代码将在消息框中向您显示ColorIndex
。
Sub GetColorIndex()
MsgBox "Cell Interior ColorIndex: " & Range("A1").Interior.ColorIndex
MsgBox "Cell Font ColorIndex: " & Range("A1").Font.ColorIndex
End Sub
获取ColorIndex
后,将该值用作IF
条件的参数。假设单元格A1
的字体颜色为红色,则消息框将向您显示ColorIndex=3
。然后使用以下代码删除超链接。
Sub RemHyperlink()
If Range("A1").Font.ColorIndex = 3 Then
Range("A1").Hyperlinks.Delete
End If
End Sub
编辑答案
选中此行。 If cell.DisplayFormat.Font.ColorIndex <> 3 Then
完整子集如下。
Sub RemoveHyperlinks()
Dim rng As Range
Dim cell As Range
On Error Resume Next
Set rng = Range("CourseName")
On Error GoTo 0
If rng Is Nothing Then
Exit Sub
End If
For Each cell In rng
If cell.DisplayFormat.Font.ColorIndex <> 3 Then
cell.ClearHyperlinks
cell.Font.Underline = False
End If
Next cell
End Sub