使用宏在Excel中显示多个组合框

时间:2014-02-24 09:47:27

标签: excel vba excel-vba combobox

我想在excel中的行中显示大约100个组合框。

如何使用循环迭代编写宏代码,而不是像这样逐一编写它:

with combobox1
   .additem("stuff 1")
   .additem("stuff 2")
end with

with combobox2
   .additem("stuff 1")
   .additem("stuff 2")
end with
.
..
with combobox100
   .additem("stuff 1")
   .additem("stuff 2")
end with

我知道这不是有效的方法。如何编写循环???我试试这个但是不起作用。

for i = 1 to 100
   with combobox & i
       .additem("stuff 1")
       .additem("stuff 2")
   end with
next i

谢谢。

1 个答案:

答案 0 :(得分:0)

只要它们是ActiveX ComboBoxes就可以这样做:

For Each s In OLEObjects
 If s.OLEType = 2 And s.progID = "Forms.ComboBox.1" Then
  ' do your stuff
  s.Object.AddItem ("Stuff 1")
 End If
Next

或者使用Shapes集合访问您的ComboBox:

For Each s In Shapes
 If s.Type = msoOLEControlObject Then
  If s.OLEFormat.progID = "Forms.ComboBox.1" Then
   s.OLEFormat.Object.Object.AddItem ("Stuff 1")
  End If
 End If
Next