2012-05-23 54 views
0

有沒有辦法來定義表單控件事件過程,如與ActiveX對象的情況?訪問表單的事件過程自控與VBA在Excel

我有一個圖形用戶界面,當前用戶添加/刪除ActiveX命令按鈕,但當試圖添加一個項目添加到每個按鈕的全局集合時遇到Error 91。我最好的猜測是因爲this much hated phenomenon。隨着項目的當前狀態,我最好的選擇是切換到使用表單控制按鈕,如果我能夠定義他們的事件過程。如果不是這樣,我可能需要以某種方式保存全局變量和操作ActiveX控件對象後讀他們回來。

回答

2

如果你只是想添加按鈕和拍攝的點擊,你可以指定一個共同的宏觀他們,基於交換機上的按鈕(當您創建它,你會集的名稱是採取什麼樣的行動,並能通過Application.Caller被調用過程可以訪問)

Sub AddButtons() 

    With ActiveSheet.Buttons.Add(100, 100, 50, 50) 
     .Name = "button1" 
     .OnAction = "ClickHandler" 
    End With 
    With ActiveSheet.Buttons.Add(200, 100, 50, 50) 
     .Name = "button2" 
     .OnAction = "ClickHandler" 
    End With 


End Sub 

Sub ClickHandler() 
    Dim bName As String 

    bName = Application.Caller 
    Select Case bName 
     Case "button1": MsgBox "Clicked First button" 
     Case "button2": AnotherSub 
    End Select 

End Sub 
+0

如果我想調用子程序或加載形式,而不是顯示一個MsgBox,這將是適當的語法? – Ehudz

+0

看我爲如何調用另一個程序編輯 –