首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel用户表单“应用”按钮

Excel用户表单“应用”按钮
EN

Stack Overflow用户
提问于 2014-02-17 01:01:19
回答 1查看 96关注 0票数 1

我有一个用命令按钮填充的userform:单击的按钮确定要调用的宏,每个按钮都隐藏表单,这允许常规模块中的代码继续执行。

实现"Apply“按钮的最佳方式是什么(例如,在窗体保持可见的情况下执行宏)?我的“变通办法”是让"Apply“按钮直接调用宏,但这似乎打破了封装原理。我相信有一种更优雅的方式来实现这一点。

模块代码:

代码语言:javascript
复制
Sub Test()
    Dim lBtn As Long
    Dim F As frmTest
    Set F = New frmTest
    F.Show
    lBtn = F.plBtn 'get clicked button
    Select Case lBtn
        Case 1
'           run macro1
        Case 2
'           run macro 2

'       etc, etc
    End Select

    Unload F 'done with form
End Sub

表单代码:

代码语言:javascript
复制
Private Btn As Long
Public Property Get plBtn() As Long
    plBtn = Btn
End Property
Private Sub cmd1_Click()
    Btn = 1
    Me.Hide
End Sub
Private Sub cmd2_Click()
    Btn = 2
    Me.Hide
End Sub
EN

回答 1

Stack Overflow用户

发布于 2014-02-17 01:35:06

您可以将数字id到宏的执行逻辑封装到一个函数中(为了便于阅读,用Enum代替了Long ):

代码语言:javascript
复制
Public Enum Macros
    MacroPrepareCake = 1
    MacroBakeCake
    MacroEatCake
End Enum

Public Sub RunMacro(macro As Macros)
    Select Case macro
        Case Macros.MacroPrepareCake
            '// code/call

        Case Macros.MacroBakeCake
            '// code/call

        Case Macros.MacroEatCake
            '// code/call

    End Select
End Sub

然后,您可以在窗体处于隐藏状态或单击Apply时调用RunMacro

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21814413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档