我有一个动态名称范围,我想用其填充UserForm ComboBox
。
Range1=OFFSET(Sheet1!$A$1,1,0,COUNTA(Sheet1!$A:$A)-1,1)
如何使用此范围填充combobox
并使用combobox
在输入时添加和排序范围?
答案 0 :(得分:1)
免责声明:我不打算在盘子上给你代码,但我肯定可以让你走上正轨:)
第一件事
COUNTA(Sheet1!$A:$A)-1
是查找最后一个行号的错误方法。如果Col A有空白怎么办?
请改用=MAX((A:A<>"")*(ROW(A:A)))
。这是一个数组公式。这意味着如果直接在工作表中使用它,则必须使用 CTRL + SHIFT + ENTER 。如果您在命名范围内使用它,那么您不必担心它。
<强>其次强>
要遍历某个范围并添加到组合框,您可以使用此代码
Dim aCell As Range
For Each aCell In MYRANGE
Combobox1.AddItem aCell.Value
Next aCell
<强>第三强>
要添加到范围,您只需使用
即可Range("A1").Value = Combobox1.value
<强>最后强>
排序范围
'~~> Where ws is the relevant worksheet
ws.Columns("A:AE").Sort Key1:=ws.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
您可以使用Combobox1
点击事件执行范围的添加和排序
希望这能让你走上正轨:)