将parameter passing给使用onAction事件注册的方法(VBA – Excel)

如何将parameter passing给在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”子例程。 任何方式来做到这一点。 基本上我想知道checkbox出现在CheckboxChange子例程中的单元格。

改变这个:

 .OnAction = "CheckboxChange" 

对此:

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

“”“= 3双引号

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

与34()而不是引号(“),可能会更容易,

我有一个3个string参数的例子:

 .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是一个macros,

Nom_Fichier是一个stringvariables,

Old_Val也是,

ThisWorkbook.Sheets(“Import_Objets”)。Cells(Item_Num,q * 2).Value也是表单中的单元格的string。

Excel.Checkbox控件具有LinkedCell属性。 将此属性设置为rCell.Address或类似的值。 将OnAction设置为CheckboxChangemacros。 要获得点击checkbox,请在CheckboxChange使用Evaluate(Application.Caller)Application.Caller将是checkbox的名称, Evaluate返回checkbox对象本身。 使用这个对象,你可以得到它的NameLinkedCell