2013-10-24 69 views
0

我必須生成數百個具有相同項目值的表單控件下拉菜單。所以我想盡可能克隆它們。我應該能夠改變一些屬性,如名稱,OnA​​ction任何想法將不勝感激。Vba Excel:是否可以克隆窗體控件?

+1

創建它們以編程方式(即在運行時,而不是設計時)。 – steveo40

+0

如果他發佈了一些工作代碼,我會給@ steve040一個upvote在他的答案。在運行時創建控件並不容易,因此一個示例會很有幫助。 –

回答

1
Sub Macro1() 
Dim c As Range, i As Long, nm As String 
Dim sht As Worksheet 

    Set sht = ActiveSheet 
    i = 0 
    For Each c In sht.Range("A2:A20") 
     i = i + 1 
     nm = "dd_" & i 
     On Error Resume Next 
     sht.Shapes(nm).Delete 
     On Error GoTo 0 

     With sht.DropDowns.Add(c.Left, c.Top, c.Width, c.Height) 
      .Name = nm 
      .ListFillRange = "K1:K6" 
      .LinkedCell = "" 
      .DropDownLines = 8 
      .Display3DShading = False 
      .OnAction = "HandleClick" 
     End With 

    Next c 

End Sub 

處理程序:

Sub HandleClick() 
    Debug.Print Application.Caller 
End Sub 
+0

代碼工作正常,但我想知道表單控制克隆是否可能? –

+0

我認爲你唯一的選擇可能是通過複製/粘貼,這是不是很整齊。 –