让我先说一下我对VB很新...
每当某个单元格中的值发生变化时,我都会尝试运行宏。我已经读过如何做到这一点,但似乎无法让它发挥作用。我已将以下代码输入到工作表对象的私有模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("$C$5")) Is Nothing Then
Application.Run _
"'Amex Payments_Experiment.xlsm'!SelectCells"
End If
End Sub
C5是我试图监控变化的单元格。 “SelectCells”是我想要运行的宏。 “Amex Payments_Experiment.xlsm”是文件的名称。
当我改变C5中的值时,没有任何反应。一些帮助会很棒。谢谢!
更新:
Cyberkiwi - 不,这不完全是我做的,但当我按照你的指示时,我确实找到了你应该说的代码。要进入工作表对象的私有模块,我右键单击底部的工作表选项卡,选择“查看代码”,然后从页面顶部中心的下拉列表中选择“工作表”。
User587834 - 是的。宏已启用。
还有其他建议吗?
答案 0 :(得分:1)
如果使用Excel2007,请确保启用了宏,默认情况下,Excel 2007会停用新工作簿的宏执行。 为此尝试执行任何其他宏以确保宏已启用。
答案 1 :(得分:0)
我已将以下代码输入到工作表对象的私有模块中:
你究竟是怎么做到的?如下所示?
答案 2 :(得分:0)
这段代码对我有用
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("$C$5")) Is Nothing Then
MsgBox "hello"
End If
End Sub
问题可能与您的Application.Run有关: - 选择包含相交的行,然后单击F9以打开Debug,然后尝试更改单元格以查看是否到达子。 如果您从未到达该行,那么您没有在工作表clkass模块中获得代码,或者您已关闭事件,或者宏被禁用或...
答案 3 :(得分:0)
检查Application.EnableEvents
属性,并根据需要将其设置为True
。