gpt4 book ai didi

excel - 在运行子程序之前从子程序调用按钮单击事件而不知道按钮的名称

转载 作者:行者123 更新时间:2023-12-04 21:08:27 25 4
gpt4 key购买 nike

Sub , 我想触发 Click事件。对于给定的 Button,例如 ButtonCommand1 ,我可以通过运行代码来做到这一点:

    Sub test()

Call Sheet1.ButtonCommand1_Click

End sub

, 其中 ButtonCommand1_ClickPublic Sub写于 Sheet1 .

但是,我的问题是在运行子程序本身之前我不知道要单击的按钮的名称。所以我需要类似的东西:
    Sub test()

Dim i As Integer
Dim button As String

i = 'SOMETHING
button = "ButtonCommand" & i

Call Sheet1.button_Click

End sub

, 其中 Sub Sheet1.button_Click已经包含在 Sheet1 中作为 Public Sub对于所有可能的 i的。

我尝试了几个选项,即将按钮设置为 Objec t 和玩 Shapes收集以便: Set button = shapes.range(Array("ButtonCommand" & i)) AND i还尝试通过执行 shapes.range(Array("ButtonCommand" & i)).select 来选择正确的形状然后运行 ​​ Application.Click .但没有任何效果。谢谢您的帮助!

最佳答案

您不调用事件处理程序。处理程序处理事件,它们由 VBA 运行时调用以响应某些特定事件。

“手动”调用事件处理程序是任何语言的反模式,VBA 也不异常(exception)。事件处理程序是 Private默认情况下,是有原因的。

很难准确地说出你在用你的示例代码做什么,但是说你有这个:

Private Sub Button1_Click()
DoStuff
End Sub

然后在其他地方,你想调用那个点击处理程序——不要!调用 DoStuff反而!

关于excel - 在运行子程序之前从子程序调用按钮单击事件而不知道按钮的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45823468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com