嗨,我将Excel 2010与ActiveX控件配合使用。我知道Activex控件会导致控件损坏和大小随机变化。当我更换屏幕时,此问题开始。
我需要能够通过单击按钮将元素添加到表单控件中,还需要通过VBA访问表单中的元素。
我的问题是如何将元素添加到表单控件列表框中,如何访问它以及如何删除它。
我的代码使用了所有活动的x组件,但我想将它们切换。我不确定如何在表单控件列表框中设置名称,甚至无法在VBA中访问它。
任何帮助都会很棒!
PS。我正在使用Windows 7,Excel 2010
答案 0 :(得分:0)
此方法创建一个列表框运行时。您只需要在UserForm1
上留出空间即可。
Dim lb As msforms.ListBox
Set lb = UserForm1.Controls.Add("forms.listbox.1", "MyListBox1")
这也是有关如何引用(ActiveX)对象的很好的演示。一种避免意外/意外调整大小的解决方法,可以有意地从代码内定期运行以下代码段:
If lb.width <> 100 Then ' or you can check other properties, too
lb.Top = 120
lb.Left = 40
lb.Width = 100
End If
这也可以应用于其他ActiveX对象,例如:
If UserForm1.Width <> 200 Then
UserForm1.Width = 200
...
您只需要在代码中找到一个经常运行此代码段的适当位置,当然也可以在UserForm_Initialize中找到一个合适的位置。您还可以通过这种方式设置其他属性,例如标题或制表符等。
要添加和删除项目,您需要使用如下索引:
lb.AddItem "First item", 1
lb.AddItem "Second item", 2
lb.AddItem "Third item", 3
lb.RemoveItem 2