我正在使用Excel 2010,我希望在更改单元格(Range("B7")
)的值时自动更新(计算)Excel工作表(Range("B7")
是一个下拉列表)。我试图使用交叉目标方法,如:
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对象菜单下的确切工作表中编写它?
第二个问题是我如何才能做到这一点?更改Range("B7")
时,工作表不会自动更新(计算)。它仅在我保存Excel文件时更新。
答案 0 :(得分:1)
该功能应该在B7所属的表格中,例如如果您正在更新的B7在" Sheet1"那么Worksheet_Change事件的代码也应该在Sheet1下。您可以右键单击工作表的选项卡,然后选择显示代码以在VBE中找到正确的位置。
Excel应该知道任何使用B7的单元格在更改时都需要重新计算,因此应该自动处理。
答案 1 :(得分:1)