突出显示与所选单元格相对应的行/列的最快方法

时间:2019-10-14 12:57:41

标签: excel vba

我正在处理一个很大的excel工作表(482行x 654列),其中计算了许多公式,我需要找到最有效的方式来突出显示与所选行相对应的行/列。

我尝试了2种方法:

  1. 使用以下公式的条件格式:
=OR(CELL(“col”)=COLUMN(),CELL(“row”)=ROW())

继续

Worksheet_SelectionChange(ByVal target As Range)
target.Calculate
  1. 一个宏,该宏删除以前的格式并添加引用选定单元格的新格式。

这两个解决方案都会在选择更改时触发,并且通过分配降低了工作表的使用速度。 我什至尝试将延迟设置为1或2秒,以便仅运行用户执行的最后一个动作,如果动作2在该时间段内发生,则取消动作1的事件。

在这种情况下,是否有人对我有任何高级的知识,例如不同的触发器或Excel中的隐藏设置,该设置将比默认情况下的Excel更清楚地突出显示当前行/列?

1 个答案:

答案 0 :(得分:1)

像这样吗?

Public lngRow As Long
Public lngCol As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


    Cells.Interior.Color = XlColorIndex.xlColorIndexNone

    If lngCol = 0 Or lngRow = 0 Then
        lngCol = Target.Column
        lngRow = Target.Row
        FormatRow
        FormatCol
    Else
        If lngCol <> Target.Column Then
            lngCol = Target.Column
            FormatCol
        End If
        If lngRow <> Target.Row Then
            lngRow = Target.Row
            FormatRow
        End If
    End If
End Sub

Function FormatRow()
    Dim r As Excel.Range
    Set r = Rows(lngRow)
    r.Interior.Color = RGB(230, 230, 230)
End Function
Function FormatCol()
    Dim r As Excel.Range
    Set r = Columns(lngCol)
    r.Interior.Color = RGB(230, 230, 230)
End Function