Excel中用VBA写一个判断并弹出对话框
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键,完成效果图。
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
不能用 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
拷贝如下代码码蔽野到SUB 和 END SUB 之间:
If Sheet1.Range("A1").Value > Sheet1.Range("A2").Value Then a = MsgBox("A1大于A2", vbOKCancel, "警告")