将参数传递给使用onAction事件注册的方法(VBA - Excel)

时间:2009-09-11 10:12:05

标签: excel vba

如何将参数传递给在Excel VBA中使用onAction事件注册的方法?

我的代码是:

With ActiveSheet.CheckBoxes.Add(rCell.Left, rCell.Top, rCell.Width, rCell.Height)
        .Interior.ColorIndex = xlNone
        .Caption = ""
        .OnAction = "CheckboxChange"
End With

我想将“rCell”传递给“CheckboxChange”子例程。任何方式来做到这一点。基本上我想知道CheckboxChange子例程中复选框所在的单元格。

3 个答案:

答案 0 :(得分:4)

改变这个:

.OnAction = "CheckboxChange"

对此:

.OnAction = "'CheckboxChange""" & rCell & """'"

“”“= 3个双引号

“”“”“= 3个双引号& 1单引号& 1双引号

答案 1 :(得分:2)

用chr(34)代替引用(“),它可能更容易,

我有一个带有3个字符串参数的例子:

.OnAction =  "'" & ThisWorkbook.Name & "'!'Importer_Items_Temp_par_Menu_Déroulant " & Chr(34) & Nom_Fichier & Chr(34) & " , " & Chr(34) & Old_Val & Chr(34) & " , " & Chr(34) & ThisWorkbook.Sheets("Import_Objets").Cells(Item_Num, q * 2).Value & Chr(34) & "'"

其中Importer_Items_Temp_par_Menu_Déroulant是一个宏,

Nom_Fichier是一个字符串变量

Old_Val,

ThisWorkbook.Sheets(“Import_Objets”)。Cells(Item_Num,q * 2).Value也是一个字符串,来自工作表中的单元格。

答案 2 :(得分:1)

Excel.Checkbox控件具有属性LinkedCell。将此属性设置为rCell.Address之类的值。将OnAction设置为CheckboxChange宏。要获取点击的复选框,请使用Evaluate(Application.Caller)内的CheckboxChangeApplication.Caller将成为复选框的名称,Evaluate将返回复选框对象本身。使用此对象,您可以获得其NameLinkedCell