如何动态的添加控件?比如添加一个下拉框?

解决方案 »

  1.   

    Dim WithEvents myCmb As ComboBox
    Set myCmb = Form1.Controls.Add("vb.ComboBox", "cmbName"
      

  2.   

    "Form1"不好用啊?是实际的sheet名还是就是"Form1"啊?谢谢!
      

  3.   

    Sheet名?!
    你想在哪里添加控件?以上Form1 为你需要往其上面添加控件的窗体。
      

  4.   

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, Left:=111, Top:=43.5, Width:=48, Height:=12.75)
      

  5.   

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, Left:=111, Top:=43.5, Width:=48, Height:=12.75)能返回加上去的控件么?我式了一下
    set obj = ActiveSheet.OLEObjects.Add(......
    不好用。
    其实我主要是想对加上去的控件,进行操作!!!谢谢。
      

  6.   

    我再解释一下。我有个函数的参数是textbox,我想把生成的textbox传进去怎么传?
    private sub mtd(byref tb as textbox)end sub
    ActiveSheet.OLEObjects.Add方法返回来得是oleobject型,传不进去,后者说怎么进行类型转换?
      

  7.   

    Private Sub CommandButton1_Click()
    ActiveSheet.OLEObjects.Add ClassType:="Forms.combobox.1", Link:=False, DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=ActiveCell.Width, Height:=ActiveCell.Height
    End SubPrivate Sub mtd(ByRef obj As OLEObject)
    ActiveSheet.OLEObjects(obj.Name).Object.List = Array(1, 2, 3, 4, 5)
    MsgBox ActiveSheet.OLEObjects(obj.Name).Object.ListCount
    End SubPrivate Sub CommandButton2_Click()
    Dim ctl As OLEObject
    For Each ctl In Worksheets("Sheet1").OLEObjects
    If ctl.Name = "ComboBox1" Then mtd ctl
    Next
    End Sub