Excel - 选择不同的单元格时强制重新计算
Excel - Force recalculation when different cell is selected
一些上下文:
最近发现下面的公式returns当前选中的单元格的地址(或者如果选中了范围,returns最左上角的单元格的地址范围):
= CELL("address")
起初,我认为这个公式对条件格式很有用,因为它可以用作条件的一部分以仅格式化选定的单元格(例如,条件格式规则可能类似于 = CELL("address")=ADDRESS(ROW(),COLUMN())
), 但我遇到了障碍。
公式是可变的,但可变函数仅在以下情况下更新:
工作表中的一个单元格被更改
F9在键盘上被按下
综上所述,我的问题是:有没有一种方法可以在单击鼠标选择不同的单元格时自动重新计算单元格?即使是不稳定的单元格也不会从这种情况更新,因为选择不同的单元格本身不会导致单元格中的任何数据发生变化。
当然,可以在选择不同的单元格后按 F9 手动更新,但我想知道是否有自动执行此操作的方法。
您可以在 VBA 中使用 Worksheet_SelectionChange() 事件。
打开您的 VBE (Alt+F11),在 VBA 项目窗格(左上角)中找到您的工作簿,然后双击您的工作表。
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
现在,只要在工作表 A1 单元格上移动,就会重新计算。
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
中时才会突出显示所选单元格
一些上下文:
最近发现下面的公式returns当前选中的单元格的地址(或者如果选中了范围,returns最左上角的单元格的地址范围):
= CELL("address")
起初,我认为这个公式对条件格式很有用,因为它可以用作条件的一部分以仅格式化选定的单元格(例如,条件格式规则可能类似于 = CELL("address")=ADDRESS(ROW(),COLUMN())
), 但我遇到了障碍。
公式是可变的,但可变函数仅在以下情况下更新:
工作表中的一个单元格被更改
F9在键盘上被按下
综上所述,我的问题是:有没有一种方法可以在单击鼠标选择不同的单元格时自动重新计算单元格?即使是不稳定的单元格也不会从这种情况更新,因为选择不同的单元格本身不会导致单元格中的任何数据发生变化。
当然,可以在选择不同的单元格后按 F9 手动更新,但我想知道是否有自动执行此操作的方法。
您可以在 VBA 中使用 Worksheet_SelectionChange() 事件。
打开您的 VBE (Alt+F11),在 VBA 项目窗格(左上角)中找到您的工作簿,然后双击您的工作表。
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
现在,只要在工作表 A1 单元格上移动,就会重新计算。
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
中时才会突出显示所选单元格