2009-09-11 70 views
3

如何將參數傳遞給在Excel VBA中使用onAction事件註冊的方法?將參數傳遞給使用onAction事件註冊的方法(VBA - Excel)

我的代碼是:

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

我想通過 「RCELL」 到 「CheckboxChange」 子程序。任何方式來做到這一點。基本上我想知道複選框出現在CheckboxChange子例程中的單元格。

+0

可能重複的[Excel,VBA:如何將多個變量傳遞給.OnAction](http://stackoverflow.com/questions/13079727/excel-vba-how-to-pass-multiple-variables-to-onaction ) – RubberDuck 2015-01-12 15:43:55

回答

3

更改此:

.OnAction = "CheckboxChange" 

向該:

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

「」」 = 3個引號

「」 「」「= 3個引號& 1單引號& 1雙引號

+3

我建議使用chr(34)來「避免這種混淆多個」的情況 – FinancialRadDeveloper 2011-04-14 14:17:40

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」)。將細胞(Item_Num,Q * 2)。價值也是一個字符串,來自表單元格。

1

Excel.Checkbox控件有財產LinkedCell。將該屬性設置爲值rCell.Address等。將OnAction設置爲CheckboxChange宏。要獲得點擊複選框,請在CheckboxChange中使用Evaluate(Application.Caller)Application.Caller將是複選框的名稱,Evaluate將返回複選框對象本身。使用這個對象,你可以得到它的NameLinkedCell