Передача аргументов в метод, зарегистрированный с помощью события onAction (VBA – Excel)

Как передать аргумент методу, зарегистрированному в событии onAction в Excel VBA?

Код, который у меня есть:

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) вместо цитаты («), это может быть проще,

У меня есть пример с тремя строковыми аргументами:

 .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»). Ячейки (Item_Num, q * 2). Значение также является строкой из ячейки на листе.

Excel.Checkbox управления Excel.Checkbox имеет свойство LinkedCell . Установите это свойство в значение rCell.Address или тому подобное. Установите OnAction в макрос OnAction . Чтобы установить флажок, нажмите « Evaluate(Application.Caller) внутри флажка « CheckboxChange . Application.Caller будет именем флажка, а Evaluate вернет сам объект флажка. Используя этот объект, вы можете получить его Name или LinkedCell .

Давайте будем гением компьютера.