如何在每次单元格获取值更改时运行VBA代码以及在何处将代码放入其中?

时间:2015-06-01 12:40:17

标签: excel vba

我尝试运行私有子代码:

Private Sub Worksheet_Calculate()
    Dim target As Range
    Set target = Range("G3")
    If Not Intersect(target, Range("G3")) Is Nothing Then
    End If
End Sub

我从一张纸上拉出一个值并将其放在另一张纸上的另一个单元格中。我希望VBA在单元格自动更改时运行。当我尝试上面的代码时,我更新单元格时没有任何反应。

1 个答案:

答案 0 :(得分:0)

从事物的声音来看,问题似乎是你试图将代码放在模块中,就像常规宏一样。要让它基于工作表事件运行,您需要在该工作表的代码窗口中拥有代码(在VBA窗口中,有" Microsoft Excel Objects"文件夹,在里面是工作表的列表,双击工作表以打开它的代码。

一旦您打开了工作表的代码,在窗口顶部就会看到两个下拉列表。左边的那个应该显示"(一般)"。在该下拉菜单中选择"工作表" (应该是唯一的选择)。

在右侧的下拉列表中,选择&#34;更改&#34;。然后,您需要验证Target是否是正确的单元格(If Target.Address = "$<Column letter>$<row #>")。在If语句中,您可以嵌套代码以将值复制到第二个工作表