我想通过大量工作表循环,然后在每个工作表中填充列表框控件,并用我的代码填充它们。我使用下面的代码:Excel VBA - 通过ListBox控件循环
Dim sh As Worksheet
Dim obj As OLEObject
Dim lst As MSForms.ListBox
Dim idx As Long
For idx = 1 To ThisWorkbook.Worksheets.Count
Set sh = ThisWorkbook.Worksheets(idx)
For Each obj In sh.OLEObjects
If obj.progID = "Forms.ListBox.1" Then
Set lst = obj
If (lst.Name = "lst1") Then
Call PopulateSimple(lst, "Table1")
End If
End If
Next
Next idx
这似乎是不幸的,当我将列表框设置为对象。任何想法如何实现循环遍历不同工作表中的所有列表框并填充它们?
你需要什么参考? 'MSForms.ListBox'给了我一个编译错误,“用户定义类型无法识别” – 2013-04-10 14:54:20
无视,我找到了MS Forms库的引用。当我运行这个代码时,sh.OLEObjects是空的。你如何插入ListBox控件? – 2013-04-10 14:55:48
在我看来,你需要将'Dim lst as MSForms.ListBox'改成'Dim lst as OLEObject',这就是所有... – 2013-04-10 14:57:32