ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: szdy

excel宏弹出一个有多个选项的弹窗怎么写?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-21 21:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-5 12:02 | 显示全部楼层
本帖最后由 w8899 于 2018-9-5 14:02 编辑
蓝桥玄霜 发表于 2014-11-18 09:44
If Me.ListBox1.Value = "选项一" Then MsgBox "a=1":Userform1.Hide

Sub 一键清除数据库()
    On Error Resume Next
    a = InputBox("将要清除全部数据!" & vbNewLine & "请输入密码", "密码输入")
    If Format(a, "#") <> Format("14358899") Then
        MsgBox " 您输入的密码不正确!"
        Exit Sub
    End If
    X = MsgBox("确认清除!执行清除后,数据库所有数据将清除且不能恢复,点“是”继续,“否”取消操作!", vbYesNo)
    If X = vbYes Then
        Close
    Else
        Exit Sub
    End If
    Dim j
    With Sheet4
        .Range("A2:U65536") = ""
        MsgBox "已清除所有数据!"
    End With
End Sub

Sub 一键清除预算单数据()
    On Error Resume Next
    a = InputBox("将要清除全部数据!" & vbNewLine & "请输入密码", "密码输入")
    If Format(a, "#") <> Format("14358899") Then
        MsgBox " 您输入的密码不正确!"
        Exit Sub
    End If
    X = MsgBox("确认清除!执行清除后,数据库所有数据将清除且不能恢复,点“是”继续,“否”取消操作!", vbYesNo)
    If X = vbYes Then
        Close
    Else
        Exit Sub
    End If
    Dim j
    With Sheet23
        .Range("A2:U65536") = ""
        MsgBox "已完成!"
    End With
End Sub

Sub 导入ACCESS数据库()
    '引用Microsoft ActiveX Data Objects 2.x Library
    Dim cnn As New ADODB.Connection, rs As New ADODB.Recordset, SQL As String, strMsg As String
    '    cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\数据库.accdb"
    Dim DatabaseFuPass As String: DatabaseFuPass = ThisWorkbook.Path & "\数据库1.accdb"
    Const myPass As String = "14358899"
    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password=" & myPass & ";Data Source=" & DatabaseFuPass
    SQL = "SELECT A.* FROM [Excel 12.0;Database=" & ThisWorkbook.FullName & ";].[数据库$A1:U" & Sheets("数据库").Range("b" & Sheets("数据库").Rows.Count).End(xlUp).Row _
        & "] A LEFT JOIN (Select * From 数据库) D ON A.单号=D.单号  WHERE D.单号 IS NULL"
    rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
    If rs.RecordCount > 0 Then
        SQL = "INSERT INTO 数据库 " & SQL
        cnn.Execute SQL
        strMsg = rs.RecordCount & "条记录已添加到数据库!"
    Else
        strMsg = "没有发现可以插入的记录!"
    End If
    MsgBox strMsg, vbInformation, "提示"
    rs.Close: cnn.Close
    Set rs = Nothing: Set cnn = Nothing
End Sub

Sub 删除再导入ACCESS数据库()
    On Error Resume Next
    a = InputBox("您将要清除所有数据重新导入新数据!" & vbNewLine & "请输入密码", "密码输入")
    If Format(a, "#") <> Format("14358899") Then
        MsgBox " 您输入的密码不正确!"
        Exit Sub
    End If
    X = MsgBox("确认要进行数据删除?执行删除后,所有数据将清零,并导入新的全部数据到ACCESS数据库,点“是”继续,“否”取消操作!", vbYesNo)
    If X = vbYes Then
        Close
    Else
        Exit Sub
    End If

    '   引用Microsoft ActiveX Data Objects 2.x Library
    Dim cnn As New ADODB.Connection, rs As New ADODB.Recordset, SQL As String, strMsg As String
    Dim DatabaseFuPass As String: DatabaseFuPass = ThisWorkbook.Path & "\数据库1.accdb"
    Const myPass As String = "14358899"
    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password=" & myPass & ";Data Source=" & DatabaseFuPass
    ' 清除旧数据
    SQL = "delete * from 数据库"
    cnn.Execute SQL
    ' -----------
    SQL = "SELECT A.* FROM [Excel 12.0;Database=" & ThisWorkbook.FullName & ";].[数据库$A1:U" & Sheets("数据库").Range("b" & Sheets("数据库").Rows.Count).End(xlUp).Row _
        & "] A LEFT JOIN (Select * From 数据库) D ON A.单号=D.单号  WHERE D.单号 IS NULL"
    rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
    ' 导入数据
    SQL = "INSERT INTO 数据库 " & SQL
    cnn.Execute SQL
    strMsg = rs.RecordCount & "条记录已添加到数据库!"
    MsgBox strMsg, vbInformation, "提示"
    rs.Close: cnn.Close
    Set rs = Nothing: Set cnn = Nothing

End Sub

Sub 二维码()
    Call UserForm9.Show
End Sub

Sub 隐藏工作表()
    On Error Resume Next
    a = InputBox("将要将要隐藏部份工作表!" & vbNewLine & "请输入密码", "密码输入")
    If Format(a, "#") <> Format("14358899") Then
        MsgBox " 您输入的密码不正确!"
        Exit Sub
    End If
    X = MsgBox("确认隐藏!执行隐藏,你自定的部份工作表将隐藏不可见,点“是”继续,“否”取消操作!", vbYesNo)
    If X = vbYes Then
        Close
    Else
        Exit Sub
    End If
    Sheet1.Visible = 2
    'Sheet2.Visible = 2
    'Sheet3.Visible = 2
    Sheet4.Visible = 2
    Sheet5.Visible = 2
    'Sheet6.Visible = 2
    Sheet7.Visible = 2
    Sheet8.Visible = 2
    Sheet9.Visible = 2
    Sheet10.Visible = 2
    Sheet11.Visible = 2
    Sheet12.Visible = 2
    Sheet13.Visible = 2
    Sheet14.Visible = 2
    Sheet15.Visible = 2
    'Sheet16.Visible = 2
    Sheet17.Visible = 2
    Sheet18.Visible = 2
    Sheet19.Visible = 2
    Sheet20.Visible = 2
    Sheet21.Visible = 2
    'Sheet22.Visible = 2
    Sheet23.Visible = 2
    Sheet24.Visible = 2
    'Sheet25.Visible = 2
    Sheet26.Visible = 2
    'Sheet27.Visible = 2
    MsgBox "已按你的要求隐藏了部份工作表"
End Sub

Sub 显示工作表()
    On Error Resume Next
    a = InputBox("将要显示全部工作表!" & vbNewLine & "请输入密码", "密码输入")
    If Format(a, "#") <> Format("14358899") Then
        MsgBox " 您输入的密码不正确!"
        Exit Sub
    End If
    X = MsgBox("确认要显示?执行显示后,所有工作表将显示,点“是”继续,“否”取消操作!", vbYesNo)
    If X = vbYes Then
        Close
    Else
        Exit Sub
    End If
    Sheet1.Visible = -1
    Sheet2.Visible = -1
    'Sheet3.Visible = -1
    Sheet4.Visible = -1
    Sheet5.Visible = -1
    'Sheet6.Visible = -1
    Sheet7.Visible = -1
    Sheet8.Visible = -1
    Sheet9.Visible = -1
    Sheet10.Visible = -1
    Sheet11.Visible = -1
    Sheet12.Visible = -1
    Sheet13.Visible = -1
    Sheet14.Visible = -1
    Sheet15.Visible = -1
    'Sheet16.Visible = -1
    Sheet17.Visible = -1
    Sheet18.Visible = -1
    Sheet19.Visible = -1
    Sheet20.Visible = -1
    Sheet21.Visible = -1
    'Sheet22.Visible = -1
    Sheet23.Visible = -1
    Sheet24.Visible = -1
    'Sheet25.Visible = -1
    Sheet26.Visible = -1
    'Sheet27.Visible = -1
    MsgBox "已显示全部工作表"
End Sub

Sub 显示隐藏工作表()
    Static i&   '声明为静态变量
    i = i + 1
    Select Case i
        Case 1: 显示工作表

        Case 2: 隐藏工作表

        Case Else: 显示工作表: i = 1
    End Select
End Sub

Sub 插入批注()
    Dim Rng As Range
    For Each Rng In Intersect(Sheet1.UsedRange, Sheet1.Range("a:a"))
        Rng.ClearComments
        If Dir(ThisWorkbook.Path & "\图片\" & Rng.Value & ".jpg") <> "" Then
            Rng.AddComment
            With Rng.Comment
                .Visible = False
                .Shape.Fill.UserPicture ThisWorkbook.Path & "\图片\" & Rng.Value & ".jpg"
                .Shape.Height = 193
                .Shape.Width = 300
            End With
        End If
    Next
    MsgBox "图片插入已完成!"
End Sub
老师你好,能否将这几个宏做成一个窗体,窗体上有按钮,点击相应的按钮就能启动相对的宏
搞定了。这样做的目的是不显示工具栏菜单栏编辑栏,面需要的功能又能调出来而不必在每一个工作上搞个按钮
捕获.JPG

TA的精华主题

TA的得分主题

发表于 2018-12-18 14:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-3-18 10:02 | 显示全部楼层
香川群子 发表于 2014-11-18 10:20
也可以这样一句代码解决,更简单!

变量a a = InputBox("输入选项=1/2/3", "选项", 1)

朋友你好,这个能不能做成选项点选模式呢,能做一下参考下吗

TA的精华主题

TA的得分主题

发表于 2024-12-19 10:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
MARK
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 15:38 , Processed in 0.026723 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表