Excel - 选择不同单元格时强制重新计算

时间:2018-02-08 19:40:09

标签: excel volatility

一点背景:

我最近发现以下公式返回当前所选单元格的地址(或者如果选择了一个范围,则返回该范围内左上角单元格的地址):

= CELL("address")

起初,我认为这个公式对条件格式很有用,因为它可以用作条件的一部分,只格式化所选的单元格(例如条件格式规则可能类似于= CELL("address")=ADDRESS(ROW(),COLUMN()) ),但我面临一个障碍。

该公式是易失性的,但易失性函数仅在以下情况下更新:

  1. 工作表中的单元格已更改

  2. 键盘上按
  3. F9

  4. 所有这一切,我的问题是:只要用鼠标点击选择不同的单元格,有没有办法让单元格自动重新计算?即使是不稳定的细胞也不会从这种状况更新,因为选择不同的细胞本身不会导致细胞中的任何数据发生变化。

    当然,可以在选择不同的单元格后按 F9 手动更新,但我想知道是否有办法自动执行此操作。

2 个答案:

答案 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

时选择的单元格