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

可能要用到VBA,判断A1>A2时,弹出一个对话框,内容是警告,A1已大于A2,请确定继续?如果按“否”,就关闭这个Excel文件。如果关闭文件的代码比较复杂也可以不用,只要做一个确定就可以,点确定后什么事也不发生。PS:  A1和A2的数据是别的数据相加后的结果。

1、首先我们打开一个excel,这里建议使用office excel,因为wps的excel开发工具中的VBA是灰色的,还需要下载相关的插件,如下图所示:

2、接着我们在最上边的菜单栏中找到开发工具,然后找到Visual Basic,我们点击一下,就会出现一个新的页面,如下图所示:

3、当然出现新页面也有一个快捷键就是alt+f11,左边的sheet1、sheet2、sheet3都是你的工作表,我们可以随便点击一个进行操作,以sheet1为例如下图所示:

4、接着我们进行按钮代码的编写,在出来的菜单框中输入sub a(a是随便写的一个字母在这个位置你可以写任何东西)写好之后按回车键,就会自动出现相关的代码,如下图所示:

5、接着我们在两行代码的中间输入msgbox然后按一个空格键,在加上“”,我们在“”的中间输入你想要输入的内容,如hello,如下图所示:

6、写好上面的代码之后,按alt+f11回到主界面,然后在开发工具的下边找到插入,选中按钮,然后就会自动跳出宏,我们选中刚才那个代码也就是sheet1,如下图所示:

7、然后点击一下刚才的按钮就会弹出一个框,上面的内容就是之前写的hello,如果想删除这个按钮需要先用鼠标右键点击一下,然后按delete键,完成效果图。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
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本回答被提问者采纳
第2个回答  2012-03-12
你的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
第3个回答  2012-03-12
在你想要判断A1A2所在表的标签上右键单击-查看代码,弹出VBA窗口,然后在右边的两个下拉列表框里,一个选择WORKSHEET,一个选择CHANGE
拷贝如下代码到SUB 和 END SUB 之间:
If Sheet1.Range("A1").Value > Sheet1.Range("A2").Value Then a = MsgBox("A1大于A2", vbOKCancel, "警告")
第4个回答  2012-03-12
继续时要干什么呢,

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网