我試圖讓我在excel用戶窗體表單上動態創建一個按鈕,以運行名爲transfer
的宏,這是我在項目的「模塊」部分的Module 1
中編寫的。將代碼分配給動態創建的按鈕
下面我貼我在這實際上設法建立在框架中Transfer to Sheet
按鈕(這我還動態創建的)用戶窗體迄今爲止編寫的代碼,但由於某些原因,當我運行VBA我得到一個438 error
消息說,Object doesn't support this property or method
。
有人可以告訴我如何解決這個問題嗎?
下面的代碼:
Dim framecontrol1 As Control
Set workitemframe = Controls.Add("Forms.Frame.1")
With workitemframe
.Width = 400
.Height = 400
.Top = 160
.Left = 2
.ZOrder (1)
.Visible = True
End With
workitemframe.Caption = "Test"
Set framecontrol1 = workitemframe.Controls.Add("Forms.commandbutton.1")
With framecontrol1
.Width = 100
.Top = 70
.Left = 10
.ZOrder (1)
.Visible = True
.Caption = "Transfer to Sheet"
End With
framecontrol1.OnAction = "transfer"
+1 VBA我不能完全確定該按鈕是爲了保持(我的代碼)或消失(這個代碼)的結束。類模塊是一個聰明的解決方法,爲新按鈕提供代碼 – brettdj 2012-04-19 22:58:24
嗨Siddharth,你的例子工作得很好,你解釋它的方式非常棒,特別是對於像我這樣的VBA新秀!我不能讓你去解釋什麼是cmdArray(i)。部分在ReDim中保留cmdArray(1 To i)設置cmdArray(i).CmdEvents = ctl_Command – 2012-04-20 08:55:22
(Ooops ...在我寫完信息之前按下輸入!)正如我所說的那樣,很好理解什麼是cmdArray(i)是需要的,所以你可以提供的任何解釋都很好。再次感謝您的幫助Siddharth! – 2012-04-20 08:58:04