VBA中,想要弹出一个MSGBOX,其中包含三个选项:“选项一”,“选项二”,“选项三”,如何实现?

发布网友 发布时间:2022-04-23 21:47

我来回答

5个回答

热心网友 时间:2023-10-10 21:47

你的要求没法无法用系统默认的msgbox,实现!可以自定义个弹出窗口来实现你的要求!

但可以如下,简单实现代替下

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim n As Long

n = MsgBox("选择【终止】:选项1" & vbCrLf & "选择【重试】:选项2" & vbCrLf & "选择【忽略】:选项3", vbAbortRetryIgnore, "提示")

Debug.Print n

Cells(1, 1) = n


End Sub

热心网友 时间:2023-10-10 21:48

这应该不能用Msgbox,不过可以用窗体来实现。
做一个窗体,把BorderStyle改成3,然后放三个按钮,用form.show调出,在按钮的单击事件中输入form.unload以关闭(上面两个form均是一个窗体对象)。

热心网友 时间:2023-10-10 21:48

Private Sub ListBox1_Click()

If Me.ListBox1.Value = "选项一" Then MsgBox "a=1"

If Me.ListBox1.Value = "选项二" Then MsgBox "a=2"

If Me.ListBox1.Value = "选项三" Then MsgBox "a=3"

End Sub

Private Sub UserForm_Initialize()

ar = Array("选项一", "选项二", "选项三")

Me.ListBox1.List = ar

End Sub

热心网友 时间:2023-10-10 21:49

msgbox弹出对话框无法包括选项控件.按钮的文字也是固定的.只能包括:确定,取消,是,否,重试,忽略,终止.

热心网友 时间:2023-10-10 21:49

submsg()dimrngasrangesetrng=range("a1:b100")'假设范围为a1:b100ifnotrng.find("")isnothingthenmsgboxrng.address&"范围内有空值"setrng=nothingendsubSubmsg()DimrngAsRangeSetrng=Range("a1:b100")'假设范围为a1:b100IfNotrng.Find("")IsNothingThenMsgBoxrng.Address&"范围内有空值"ElseMsgBoxrng.Address&"范围内无空值"EndIfSetrng=NothingEndSub

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com