如果(M,i)具有值,则将(A,i)添加到组合框

时间:2015-07-22 03:28:11

标签: excel vba excel-vba combobox

我遇到了问题:

在我的Excel电子表格中,我有一个ComboBox(来自 Developer> insert> form> combobox

我想使用A列中的值填充此组合框,如果M列中的相同数字具有值

我会使用哪种VBA代码?

见下面我编造的一些(显然不起作用)

提前致谢!

For i = 10 To 239
    cell1temp = i
    If Sheets("MASTER SHEET").cell(M, cell1temp).Value <> "" Then
        DropDown35.AddItem "" & Worksheets("MASTER SHEET").Cells(A, cell1temp) & _
        " " & Worksheets("MASTER SHEET").Cells(B, cell1temp)
    End If

Next i

1 个答案:

答案 0 :(得分:0)

事实上,如果您去控件标签中看到格式控制,您会看到您插入的表单只能范围作为列表中建议值的输入。

如果您继续使用宏录制器,您将看到这些对象实际上被称为 DropDown ,如您发布的代码所示。

因此,如果您因特定原因想要坚持使用该对象,您必须:

  1. 预先提取要添加的值,
  2. 将它们粘贴到相邻的单元格中,以使用下一步中的范围
  3. 使用上一个范围的地址设置ActiveSheet.Shapes.Range("Drop Down 35").ListFillRange
  4. 现在,如果您可以更改为真正的 ComboBox (来自开发人员&gt;插入&gt; ActiveX&gt; ComboBox):

    您可以使用与您发布的结构类似的结构:

    Dim ValA As String, _
        Ws As Worksheet
    
    Set Ws = ThisWorkbook.Sheets("MASTER SHEET")
    
    For i = 10 To 239
        If Ws.Cells(i, "M").Value <> vbNullString Then _
            Ws.Shapes.Range("ComboBox1").AddItem Ws.Cells(i, "A") & " " & Ws.Cells(i, "B")
    Next i
    
    Set Ws = Nothing