【问题标题】:EXCEL VBA: calling an event with onclick property of a button which is being created on the flyEXCEL VBA:使用动态创建的按钮的 onclick 属性调用事件
【发布时间】:2013-03-01 01:40:15
【问题描述】:

我正在创建一个 excel VBA 用户表单,它需要动态创建许多按钮(即,根据需要,运行时)。我想为这些按钮分配一个子程序,以便在单击它们时执行一个子程序。

这就是我想做的事

Set obj4 = usrform.Controls.Add("forms.commandbutton.1")
obj4.Height = 17
obj4.Left = 450
obj4.Top = 75 
obj4.Font.Size = 11
obj4.Name = "compare" & (j - i) 'j and i are some variables in the code
obj4.Caption = "Compare!"
obj4.onclick =  abcd

public sub abcd()
'some code here
end sub

但是这段代码没有运行。我在某处读到,在这里我不能调用子例程,而是调用函数。我的问题是我只想要一个子程序,因为我不打算从中得到回报。但仍然出于试用目的,我在上面的代码中创建了 abcd() 函数,然后我的代码正在运行但没有成功,因为它正在执行函数 abcd 而无需按下按钮。

谁能帮我解决这个问题?我在各种论坛的互联网上搜索了很多。

【问题讨论】:

标签: excel vba runtime syntax-error


【解决方案1】:

不要沉迷于子程序v.函数:如果你不设置函数的返回值,它和子程序是一样的。

当你设置 onClick 属性时,你给它函数的名字作为一个字符串obj4.onclick = "abcd" 否则它将执行函数并保存返回值。

【讨论】:

    猜你喜欢
    • 2016-06-29
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多