动态添加控件问题

iseelxj 2005-10-29 03:45:11
如何动态的添加控件?比如添加一个下拉框?
...全文
328 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2005-11-05
  • 打赏
  • 举报
回复
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 Sub



Private 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 Sub

Private Sub CommandButton2_Click()
Dim ctl As OLEObject
For Each ctl In Worksheets("Sheet1").OLEObjects
If ctl.Name = "ComboBox1" Then mtd ctl
Next
End Sub
iseelxj 2005-10-31
  • 打赏
  • 举报
回复
我再解释一下。我有个函数的参数是textbox,我想把生成的textbox传进去怎么传?
private sub mtd(byref tb as textbox)

end sub
ActiveSheet.OLEObjects.Add方法返回来得是oleobject型,传不进去,后者说怎么进行类型转换?
iseelxj 2005-10-31
  • 打赏
  • 举报
回复
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(......
不好用。
其实我主要是想对加上去的控件,进行操作!!!谢谢。
crycoming 2005-10-31
  • 打赏
  • 举报
回复
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, Left:=111, Top:=43.5, Width:=48, Height:=12.75)
iseelxj 2005-10-31
  • 打赏
  • 举报
回复
我想在excel的sheet中添加!
winehero 2005-10-31
  • 打赏
  • 举报
回复
Sheet名?!
你想在哪里添加控件?以上Form1 为你需要往其上面添加控件的窗体。
iseelxj 2005-10-31
  • 打赏
  • 举报
回复
"Form1"不好用啊?是实际的sheet名还是就是"Form1"啊?谢谢!
faysky2 2005-10-29
  • 打赏
  • 举报
回复
Dim WithEvents myCmb As ComboBox
Set myCmb = Form1.Controls.Add("vb.ComboBox", "cmbName"

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧