将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
设置为CheckboxChange
macros。 要获得点击checkbox,请在CheckboxChange
使用Evaluate(Application.Caller)
。 Application.Caller
将是checkbox的名称, Evaluate
返回checkbox对象本身。 使用这个对象,你可以得到它的Name
或LinkedCell
。