Excel中用VBA写一个判断并弹出对话框
答案:4 悬赏:40
解决时间 2021-01-27 07:02
- 提问者网友:藍了天白赴美
- 2021-01-26 11:20
Excel中用VBA写一个判断并弹出对话框
最佳答案
- 二级知识专家网友:何以畏孤独
- 2021-01-26 11:34
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
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楼网友:忘川信使
- 2021-01-26 14:10
继续时要干什么呢,
- 2楼网友:迟山
- 2021-01-26 12:37
在你想要判断A1A2所在表的标签上右键单击-查看代码,弹出VBA窗口,然后在右边的两个下拉列表框里,一个选择WORKSHEET,一个选择CHANGE
拷贝如下代码到SUB 和 END SUB 之间:
If Sheet1.Range("A1").Value > Sheet1.Range("A2").Value Then a = MsgBox("A1大于A2", vbOKCancel, "警告")
拷贝如下代码到SUB 和 END SUB 之间:
If Sheet1.Range("A1").Value > Sheet1.Range("A2").Value Then a = MsgBox("A1大于A2", vbOKCancel, "警告")
- 3楼网友:低血压的长颈鹿
- 2021-01-26 12: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
不能用 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
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯