Sto cercando di ottenere un pulsante che ho creato dinamicamente su un modulo utente excel per eseguire una macro denominata transfer
che ho scritto in Module 1
della sezione "Moduli" del mio progetto .Assegna il codice a un pulsante creato dinamicamente
Qui di seguito ho incollato il codice che ho scritto finora nel userform che gestisce in realtà per creare il pulsante Transfer to Sheet
nel telaio (che ho anche creato dinamicamente), ma per qualche ragione, quando corro VBA Ottengo un messaggio 438 error
dicendo che Object doesn't support this property or method
.
Qualcuno può dirmi come posso risolvere questo?
Ecco il codice:
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 non sono del tutto sicuro che il pulsante era destinato a restare (il mio codice) o scomparire (il codice) alla fine. Il modulo di classe è una soluzione intelligente per fornire il codice al nuovo pulsante – brettdj
Ciao Siddharth, il tuo esempio ha funzionato molto bene e il modo in cui hai spiegato è stato fantastico, soprattutto per un debuttante VBA come me! Non posso lasciarti andare senza farti spiegare cosa è il cmdArray (i). parte fa in ReDim Preserve cmdArray (1 To i) Set cmdArray (i) .CmdEvents = ctl_Command –
(Ooops ... premuto invio prima che avessi finito di scrivere il mio messaggio!) Come stavo dicendo, sarebbe bene capire cosa cmdArray (i) è necessario perché ogni spiegazione che puoi fornire sia ottima. Grazie ancora per il tuo aiuto Siddharth! –