2

我正在创建一个 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 而无需按下按钮。

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

4

1 回答 1

1

不要纠结于 subroutine v. function:如果你不设置函数的返回值,它和 subroutine 是一样的。

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

于 2013-03-13T08:29:12.370 回答