【问题标题】:Highlight selected cell from hyperlink and maintain the other cell color从超链接突出显示选定的单元格并保持其他单元格颜色
【发布时间】:2019-10-02 21:51:54
【问题描述】:

我有两张表 1 和 2。我在表 2 中有一个超链接,它会将我带到表 1 中的单元格 A2 并以黄色突出显示。但同时它也删除了工作表 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

【问题讨论】:

    标签: excel vba hyperlink


    【解决方案1】:

    回答您的问题:将 -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 语句。

    【讨论】:

      【解决方案2】:

      假设您仍想删除.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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 2018-03-12
        • 1970-01-01
        • 2019-04-22
        • 1970-01-01
        相关资源
        最近更新 更多