我一直在努力解決這個問題,現在...我想做一些非常簡單的事情。我想在運行時創建多個commandbutton,然後用一個過程處理這些commandbutton的事件。所以我建立了一個「withevents」類來處理自動化,但是我的代碼沒有工作。當我運行Test()時,CommandButton被創建,但是當我點擊它時...沒有消息框響應...我找不到錯誤..請任何幫助都會很棒!在運行時創建的OLEObject命令按鈕的處理事件
類CTEST
Public WithEvents Button As MSForms.CommandButton
Public Sub Button_Click()
s = MsgBox("Hello", vbOKOnly)
End Sub
模塊1
Public TestCollection As Collection
Sub Test()
Set TestCollection = New Collection
Dim Btn As CommandButton
Dim OLEBtnObj As cTest
Set OLEBtnObj = New cTest
Set Btn = Sheet1.OLEObjects.Add(ClassType:="Forms.CommandButton.1", link:=False,_ DisplayAsIcon:=False, Left:=368.25, Top:=51, Width:=44.25, Height:=24).Object
Set OLEBtnObj.Button = Btn
TestCollection.Add Item:=OLEBtnObj
End Sub
我相信工作表控件(.OLEObjects.Add)似乎重新編譯項目。如果你想,嘗試使用Form Controls併爲其分配一個'.OnClick'事件,或者如果你仍然想使用ActiveX控件,那麼試試這個http://stackoverflow.com/questions/10633387/programatically-inserting-click- event-code-for-dynamic-generated-label-not-w – 2013-02-21 07:04:51