2014-02-24 19 views
0

我想在Excel中的行中顯示大約100個組合框。使用宏在excel中顯示多個組合框

如何使用循環迭代,而不是由一個像這樣寫這一個我寫的宏代碼:

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 

謝謝。

回答

0

只要他們的ActiveX組合框,你可以做這樣的:

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集合來訪問你的組合框:

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 
+0

謝謝。這行得通。接下來我只需要學習OLEObjects .. 謝謝 –