Excel中VBA的框架内按钮的Click事件 [英] Click Event for buttons inside Frames for VBA in Excel

查看:52
本文介绍了Excel中VBA的框架内按钮的Click事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Excel中,我将ActiveX框架插入工作表。用鼠标右键点击此框可以选择:

框架对象>编辑

现在我可以将按钮添加到此框架。太好了。

如何将_Click事件添加到此按钮以使其运行宏?

推荐答案

基本上,您需要做的就是创建您自己的类,例如"XButton"。在此"XButton"中,将有一个用于框架内按钮对象的事件处理程序。

这样您就可以处理‘btn’发送的所有事件,并进一步转发它。然后,您必须创建一个定制接口(空类)IXButtonEventHandler,如下所示:

Option Explicit

Public Sub Click(Sender as XButton)

End Sub

因此,您的自定义类XButton将如下所示:

Private WithEvents btn as MSForms.CommandButton
Private mEventHandler as IXButtonEventHandler

Public Sub CreateObject(EventHandlerOf as MSForms.CommandButton, EventHandler as IXButtonEventHandler)
     Set btn = EventHandlerOf
     Set mEventHandler = EventHandler
End Sub

Private Sub btn_Click()
    If not mEventHandler is Nothing then mEventHandler.Click(Me)
End Sub

假设您的工作簿将是事件处理程序,并且需要实现IXButtonEventHandler接口,例如:

Implements IXButtonEventHandler

Private Sub IXButtonEventHandler_Click(Sender as XButton)
    'your code
End Sub

在WORKBOOK_LOAD或其他什么地方,您需要创建一个XButton集合并将它们附加到框架控件:

Dim xbtn as Collection

Private Sub AttachButtons()
    Set xbtn = New Collection

    Dim i as Long

    For i = 0 to 3
       Dim xb as New XButton
       xb.CreateObject <YourFrame>.Controls("CommandButton" & Cstr(i)), Me

       xbtn.Add xb
    Next i
End Sub

这篇关于Excel中VBA的框架内按钮的Click事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆