如何在活动单元格中创建组合框?
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 处理可变行高的富有成效的评论。
我想创建一个脚本,选择第一个空白行,然后在该行的 "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 处理可变行高的富有成效的评论。