我正在处理一个很大的excel工作表(482行x 654列),其中计算了许多公式,我需要找到最有效的方式来突出显示与所选行相对应的行/列。
我尝试了2种方法:
=OR(CELL(“col”)=COLUMN(),CELL(“row”)=ROW())
继续
Worksheet_SelectionChange(ByVal target As Range)
target.Calculate
这两个解决方案都会在选择更改时触发,并且通过分配降低了工作表的使用速度。 我什至尝试将延迟设置为1或2秒,以便仅运行用户执行的最后一个动作,如果动作2在该时间段内发生,则取消动作1的事件。
在这种情况下,是否有人对我有任何高级的知识,例如不同的触发器或Excel中的隐藏设置,该设置将比默认情况下的Excel更清楚地突出显示当前行/列?
答案 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