在我身上获得价值。来自Foreach循环

时间:2011-07-18 18:12:34

标签: excel vba excel-vba

我有一些问题...我是VBA的新手。 所以...我有一个小应用程序,它有一堆ComboBoxes ...它们中的大多数都有来自Excel中的Range的相同值。 所以我想用一个小代码获取Comboboxes中的值,这里是

Dim rep As Range
Dim cbox As Range
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")

For Each rep In ws.Range("Repere")
  For Each cbox In ws2.Range("cboxs")
    With Me.cbox.Value
    .AddItem rep.Value
    End With
  Next cbox
Next rep

问题是这个东西不起作用......似乎Me.cbox.Value不正确。我想用Me.cbox.Value做的事情是有像Me.Combobox1,Me.Combobox2,Me.Combobox3等......在Range cboxs中是Comboboxes的名字...... 所以我想在每个Combobox中加载Range“Repere”中的数据...(我在应用程序中大约有40个) 非常感谢!

2 个答案:

答案 0 :(得分:1)

在我看来,你不应该使用value属性。您打算使用for循环中的组合框的addItem方法,但是您试图在Me.cbox.Value上调用该方法。它应该是

For Each cbox In ws2.Range("cboxs")
  Me.Controls(cbox.Value).AddItem rep.Value "<-----no need for the with bloc at all
  End With
Next cbox
祝你好运!

答案 1 :(得分:0)

尝试With Me.Controls(cbox.Value)