Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数传递给向onAction事件(VBA-Excel)注册的方法_Excel_Vba - Fatal编程技术网

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

将参数传递给向onAction事件(VBA-Excel)注册的方法,excel,vba,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”传递给“Che

如何将参数传递给在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子例程中复选框所在的单元格。

更改此选项:

.OnAction = "CheckboxChange"
为此:

.OnAction = "'CheckboxChange""" & rCell & """'"
“”=3个双引号

““”=3个双引号、1个单引号和1个双引号,用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是一个字符串变量

老瓦尔也是


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

Excel.Checkbox控件具有属性
LinkedCell
。将此属性设置为
rCell.Address
或类似值。将
OnAction
设置为
CheckboxChange
宏。要获取单击的复选框,请使用
Evaluate(Application.Caller)
中的
CheckboxChange
Application.Caller
将是复选框的名称,
Evaluate
返回复选框对象本身。使用此对象,您可以获取其
名称
链接单元格

我建议使用chr(34)表示“避免这种混乱的多重”情况可能的重复