代码之家  ›  专栏  ›  技术社区  ›  user2868524

如何在活动单元格中创建组合框?

  •  2
  • user2868524  · 技术社区  · 9 年前

    我想创建一个脚本,选择第一个空白行,然后在该行的“a”列中放置一个下拉列表。然后我想使用.additem(“”)添加我需要的项目。我该如何做?

    提前感谢。

    1 回复  |  直到 9 年前
        1
  •  2
  •   Amen Jlili    9 年前

    试试这个

    Sub AddComboBox(Col As Long)
        Dim LastRow As Range
    
        With ThisWorkbook.ActiveSheet
        Set LastRow = .Cells(.Rows.Count, Col).End(xlUp)
        End With
    
        With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                                        Link:=False, _
                                        DisplayAsIcon:=False, _
                                        Left:=0, _
                                        Top:=LastRow.Top + LastRow.Height, _
                                        Width:=100, _
                                        Height:=16)
            With .Object
                .AddItem "Hi"
            End With
        End With
    End Sub
    

    15是默认行高度。当您的行具有不同的高度时,所有赌注都无效。

    编辑1 :根据您的评论,您可以通过从另一个子系统调用它来尽可能多地使用它。我向第一个子系统Col添加了一个参数,这是您列的Id。

    Sub Main()
    Dim I As Long
    For I = 1 To 3
    AddComboBox I
    Next
    End Sub
    

    编辑2: 我结合了dee处理可变行高度的富有成效的注释。