更改单元格时自动更新(计算)Excel sheet

Auto-update (calculate) the Excel sheet when a cell is changed

我正在使用 Excel 2010,我希望 Excel sheet 将在单元格 (Range("B7")) 的值是时自动更新(计算)已更改(Range("B7") 是一个下拉列表)。我正在尝试使用 intersect-target 方法,例如:

Private Sub Worksheet_Change(ByVal target As Range)
   If Not Intersect(target, Range("B7")) Is Nothing Then
     ActiveSheet.Calculate
   End If
End Sub

我有两个问题:

我把这个Private Sub放在任何模块下有关系吗?或者我应该在 VBA 中的 Microsoft Excel -object 菜单下准确地写 sheet 吗?

第二个问题是我怎样才能使这个工作?当我更改 Range("B7") 时,sheet 不会自动更新(计算)。它仅在我保存 Excel 文件时更新。

函数应该在B7所属的sheet中,例如如果您要更新的 B7 在 "Sheet1" 中,那么 Worksheet_Change 事件的代码也应该在 Sheet1 下。您可以右键单击 sheet 的选项卡,然后 select 显示代码以到达 VBE 中的正确位置。

Excel 应该注意任何使用 B7 的单元格在更改时都需要重新计算,因此应该自动处理。

如果您将代码放在 sheets 事件 中而不是 Modlue 中,您的代码将起作用请找到下图供大家参考。

Select VB window 中的相应 sheet 双击它,将打开工作sheet 事件 window (code window) 你需要复制粘贴代码的地方。现在尝试更改它应该工作的验证单元:)..