一点背景:
我最近发现以下公式返回当前所选单元格的地址(或者如果选择了一个范围,则返回该范围内左上角单元格的地址):
= CELL("address")
起初,我认为这个公式对条件格式很有用,因为它可以用作条件的一部分,只格式化所选的单元格(例如条件格式规则可能类似于= CELL("address")=ADDRESS(ROW(),COLUMN())
),但我面临一个障碍。
该公式是易失性的,但易失性函数仅在以下情况下更新:
工作表中的单元格已更改
F9
所有这一切,我的问题是:只要用鼠标点击选择不同的单元格,有没有办法让单元格自动重新计算?即使是不稳定的细胞也不会从这种状况更新,因为选择不同的细胞本身不会导致细胞中的任何数据发生变化。
当然,可以在选择不同的单元格后按 F9 手动更新,但我想知道是否有办法自动执行此操作。
答案 0 :(得分:2)
您可以在VBA中使用Worksheet_SelectionChange()事件。
打开VBE(Alt + F11),在VBAProject窗格(左上角)中找到您的工作簿,然后双击您的工作表。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Force this cell to recalculate any time any cell is selected/highlighted
Range("A1").Calculate
End Sub
现在随时可以在工作表上移动Cell A1将重新计算。
答案 1 :(得分:1)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:D4"), Target) Is Nothing Then
Range("A1:D4").Interior.Color = xlNone
Target.Interior.ColorIndex = 6
End If
End Sub
现在将突出显示仅在所选单元格位于A1:D4
时选择的单元格