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

How do I create a combobox in active cell?

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

提前致谢。

试试这个

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:根据您的评论,您可以通过从另一个 sub 调用它来尽可能多地使用它。我在第一个名为 Col 的子项中添加了一个参数,它是您列的 ID。

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

编辑 2: 我合并了 dee 处理可变行高的富有成效的评论。