单元格值更改没有被捕获在vbamacros

我想捕获单元格A2中的值更改时

我试过下面的代码,但它不工作

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("H5")) Is Nothing Then Macro End Sub 

我在macros里面有一个断点,但是它没有到​​达那里,我也尝试了下面,但没有运气

 Private Sub Worksheet_Change(ByVal Target As Range) MsgBox (Target.Column) End Sub 

Worksheet_Change采用Rangetypes的单个参数Target 。 要检查你是否改变了你感兴趣的范围,你可以比较目标与该范围,在你的情况:

 If Target = Range("A2") Then 'Do something End If 

这可以让您将Range对象与另一个Range对象进行比较,只需最less量的操作即可。

并把它放在正确的表…:P

我find了原因

我把macros放在错误的地方,即在一个不同的模块

对于Private Sub Worksheet_Change工作,我们需要把它放在需要检测的表单中,我遵循以下步骤

  1. 我们需要按ALT + F11去Excel VBA编辑器
  2. 双击包含我们的目标单元格的工作表,例如Sheet1
  3. 将下面的代码添加到工作表