自动更新(计算)单元格更改时的Excel工作表

我正在使用Excel 2010,我希望当单元格的值( Range("B7") )被更改( Range("B7")是一个下拉列表)时,Excel工作表会自动更新(计算) 。 我正在尝试使用交叉目标方法,如:

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

我有两个问题:

如果我把这个私人小组放在任何模块下,这有什么关系吗? 或者我应该把它写在VBA中Microsoft Excel -object菜单下的精确表单中?

第二个问题是我怎么能做这个工作? 当我更改Range("B7")时,工作表不会自动更新(计算Range("B7") 。 它只会保存Excel文件时更新。

该函数应该位于B7所属的工作表中,例如,如果您正在更新的B7位于“Sheet1”中,则Worksheet_Change事件的代码也应位于Sheet1下。 您可以右键单击工作表的选项卡,然后select显示代码以在VBE中find正确的位置。

Excel应该知道,任何使用B7的单元格在更改时都需要重新计算,所以应该自动处理。

你的代码将工作,如果你把它放在床单事件不在Modlue请find下面的图像供您参考。

在这里输入图像说明

在VB窗口中select相应的工作表,双击,打开需要复制粘贴代码的工作表事件窗口(代码窗口)。 现在尝试改变它应该工作的validation单元格:)