excel中编写vba在点击ActiveX控件时获得控件本身,应该用什么?

excel中编写vba在点击ActiveX控件时获得控件本身,应该用什么?

img


我用的Me但是输出的是sheet的名字

可以用 me.activecontrol

该回答引用GPTᴼᴾᴱᴺᴬᴵ
要在VBA中获取当前活动的ActiveX控件本身,可以使用Me关键字,但需要注意的是,Me关键字实际上指向的是包含当前代码模块的对象,而不是ActiveX控件本身。

如果要获取ActiveX控件本身,可以通过设置控件的Tag属性,然后在点击事件中使用Sender来获取当前点击的控件,再通过控件的Tag属性来识别控件。

例如:

Private Sub CheckBox2_Click()
    Dim ctl As MSForms.CheckBox
    Set ctl = ActiveSheet.CheckBoxes(Application.Caller)
    If ctl.Tag = "MyCheckBox" Then
        MsgBox "You clicked MyCheckBox!"
    End If
End Sub


其中,Application.Caller可以获取当前点击的控件的名称,ActiveSheet.CheckBoxes可以根据名称获取对应的控件对象。然后通过判断控件的Tag属性来识别控件。

其实,我的目的是做几组可以取消勾选的radio button group,有什么好办法吗?