突出显示超链接中的选定单元格并保持其他单元格颜色



>我有两张1和2。我在工作表 2 中有一个超链接,它将带我到工作表 2 中的单元格 A1 并以黄色突出显示它。但与此同时,它也删除了工作表 1 中单元格 A1 的颜色。

如何保持工作表 1 中单元格 A1 的颜色?

我在工作表 2 中使用此 vba 代码

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim i As Long
For i = 1 To ThisWorkbook.Sheets.Count
Sheets(i).UsedRange.Interior.ColorIndex = -4142
Next
ActiveSheet.Cells.Interior.ColorIndex = red
Selection.Cells.Interior.ColorIndex = 6
End Sub

要回答您的问题:将 -4142 更改为 2

但是,此代码提出了很多问题。为什么它在工作表中而不是在单独的模块中?涉及"红色"的行没有被执行 - 你打算做什么?为了避免此类问题,请始终在模块顶部包含以下代码,它会让您知道错误。

Option Explicit

其他建议:

(2) use breaks to pause your code and then step through it as it executes
(3) use ranges to define the cells you are manipulating (e.g., dim r as range)
(4) use `r.select` as you debug your code to see which cell is being manipulated

关于 (4(,请注意在执行时激活.select工作表 - 并记住在完成调试后删除所有.select语句。

假设您仍然想删除.UsedRange中的所有其他颜色,则可以在删除所有颜色之前保存单元格A1的颜色,然后在之后重新着色A1。试试这个代码:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim i As Long, lngCI As Long
For i = 1 To ThisWorkbook.Sheets.Count
lngCI = Sheets(i).Cells(1, 1).Interior.ColorIndex
Sheets(i).UsedRange.Interior.ColorIndex = -4142
Sheets(i).Cells(1, 1).Interior.ColorIndex = lngCI
Next
ActiveSheet.Cells.Interior.ColorIndex = red 'Don't think this works, you could try .Color = RGBRed
Selection.Cells.Interior.ColorIndex = 6
End Sub

最新更新