满足条件时运行VBA宏

满足条件时运行VBA宏,vba,excel,Vba,Excel,我正在创建一个电子表格来训练我的数字技能 现在,我使用VBA宏在正确解决当前问题后生成一个新问题。要做到这一点,我仍然必须按下工作表中的一个按钮,这既费时又烦人 是否有一种方法可以在满足特定条件时执行宏 例如: if A1 = "correct!" then <run macro> else <do nothing> 如果A1=“正确!” 然后 其他的 另外,如果您对电子表格感兴趣,请告诉我,我很乐意与大家分享 最好的, Pieter为工作表添加以下代码: Priva

我正在创建一个电子表格来训练我的数字技能

现在,我使用VBA宏在正确解决当前问题后生成一个新问题。要做到这一点,我仍然必须按下工作表中的一个按钮,这既费时又烦人

是否有一种方法可以在满足特定条件时执行宏

例如:

if A1 = "correct!"
then <run macro>
else <do nothing>
如果A1=“正确!”
然后
其他的
另外,如果您对电子表格感兴趣,请告诉我,我很乐意与大家分享

最好的,
Pieter

为工作表添加以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Range("A1") = "correct!") Then
        ''# do your stuff here
    End If
End Sub

每当更改某个内容时,都会调用工作表\u Change。由于它看起来像是计算出的
A1
,因此在这种情况下,您不能检查
Target
,而是检查单元格的值。

还需要测试Target的值是否“正确!”。@PreludeAndFugue:当然,这就是我所说的
做事
:)Prelude:谢谢您的建议。我还没有尝试过,但是Peter Lang是对的:我希望代码只在单元格中的值为“correct!”时执行。当我没有输入答案时,目标单元格为空;当我输入正确答案时,目标单元格为“正确”;当答案为错误时,目标单元格为“错误”,你猜,答案是错误的。你的东西是否应该包含另一个if。。功能?Pieter理想情况下应该是另一个子系统,它包含重置工作表和生成另一组问题所需的所有VBA代码,甚至可能包括一个MsgBox(),要求用户确认/取消您的宏(Excel4Macro),我不相信,然后必须使用Run语句。谢谢你的评论-我编辑了我的答案。由于计算了
A1
,因此检查
Target
无论如何都是错误的,因为更改任何单元格都可能导致
A1
的更改。