在excel中,单元格数据是通过公式计算得到的,如何根据该值的大小变化自动执行指定的宏?谢谢老师!!!

如:A3=1,执行宏1;A3=2,执行宏2;A3=3执行宏3 .....怎么实现?谢谢!!

再写一个宏,就OK了。


Sub test()
    If Range("A3")=1
        Call 宏1
    Else If Range("A3")=2
        Call 宏2
    Else If Range("A3")=3
        Call 宏3
    End If
    
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-10
应该用工作表的,Worksheet_Calculate 事件,配合其他单元格记录 固定单元格数值变化,当有变化时,按结果自动执行宏。
第2个回答  2015-08-10
既然用宏,何以用公式?
Private Sub Worksheet_Calculate()
if [a3].value=1 then call 宏1
if [a3].value=2 then call 宏2
End Sub
这样子。代码粘贴到工作表代码窗格中追问

Private Sub Worksheet_Calculate()
If [I3].Value = 1 Then Call 号码向下叠加1
If [I3].Value = 2 Then Call 号码向下叠加2
If [I3].Value = 3 Then Call 号码向下叠加3
End Sub
谢谢大师!!我按以上代码粘贴了,但在执行时候一直在重复执行?什么原因呀~~~

追答

若你的工作表,有若干公式。当数据变动,则引发自动重算。每计算一次,就触发该事件代码。当公式过多,则反复触发该事件代码。
所以,不应该使用这个事件。应该使用Change事件来触发。

追问

重新做了一个新表来测试,还是一样的重复执行啊,谢谢老师!

相似回答