Excel中用VBA写一个判断并弹出对话框

如题所述

ALT+F11进入VBA编辑,在左侧的列表里找到要判断的A1A2单元格所在的表双击,然后在右边的窗口里粘贴以下代码.并保存.
Private
Sub
Worksheet_Change(ByVal
Target
As
Range)
If
Target.Column
=
1
Then
If
Range("A1")
>
Range("A2")
Then
mya
=
MsgBox("A1已经大于A2,请确定是否继续?",
vbYesNo,
"警告")
If
mya
=
7
Then
Application.DisplayAlerts
=
False
'所有的更改都不保存.
如果要保存,注释或删除这行
'ActiveWorkbook.Save
'这行是保存工作表的,要使用这行代码请去掉代码前面的注释符号
Application.Quit
End
If
End
If
End
Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-17
你的A1和A2是用公式计算的,应该使用Worksheet_Calculate事件完成,
不能用
Worksheet_Change事件完成,正确的代码如下
Private
Sub
Worksheet_Calculate()
Dim
i
If
Range("A1")
>
Range("A2")
Then
i
=
MsgBox("A1已大于A2,是否继续?"
&
Chr(10)
&
"按否将退出系统!",
4,
"警告")
If
i
=
vbNo
Then
Application.Quit
'按下否键,直接退出EXCEL系统
End
If
End
Sub
第2个回答  2020-04-18
在你想要判断A1A2所在表的标签上右键单击-查看代码,弹出VBA窗口,然后在右边的两个下拉列表框里,一个选择WORKSHEET,一个选择CHANGE
拷贝如下代码到SUB

END
SUB
之间:
If
Sheet1.Range("A1").Value
>
Sheet1.Range("A2").Value
Then
a
=
MsgBox("A1大于A2",
vbOKCancel,
"警告")
相似回答