1
我想這樣做或多或少筆者在這裏意:生成具有預先分配的代碼工作表按鈕
http://ccm.net/faq/1105-adding-a-vba-commandbutton-with-its-respective-the-code
遺憾的是,儘管該代碼被寫入正確的表在Microsoft Excel對象,一旦按下按鈕,代碼就不會運行。該_Click()
是在這裏:
Sub ButtonTest_Click()
MsgBox "I am supposed to work!" 'but i dont, i actually do nothing
End Sub
和代碼的其餘部分如下:
Sub CreateButton()
Dim Obj As Object
Dim Code As String
Sheets("Sheet1").Select
'create button
Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=200, Top:=100, Width:=100, Height:=35)
Obj.Name = "TestButton"
'buttonn text
ActiveSheet.OLEObjects(1).Object.Caption = "Test Button"
'macro text
Code = "Sub ButtonTest_Click()" & vbCrLf
Code = Code & "Msgbox ""I am supposed to work!""" & vbCrLf
Code = Code & "End Sub"
'add macro at the end of the sheet module
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
.insertlines .CountOfLines + 1, Code
end With
End Sub
什麼也不會發生當按鈕pressed-在我看來,它看起來像它應該觸發預期事件作爲作家,任何想法爲什麼沒有?
'TestButton'和'ButtonTest_Click'不匹配。重命名按鈕或過程,然後重試。 – Mikegrann
將'Obj.Name =「TestButton」'更改爲'Obj.Name =「ButtonTest」'。按鈕的名稱和子組的名稱必須與ActiveX組件一致。 – Ralph
不能相信我錯過了,添加一個答案麥克和大綠色的蜱是你的。 – User632716