VBA-Excel ComboBox 具有条目列表,首先显示最后输入的值

Posted

技术标签:

【中文标题】VBA-Excel ComboBox 具有条目列表,首先显示最后输入的值【英文标题】:VBA-Excel ComboBox having list of entries showing the last entered values first 【发布时间】:2014-03-17 22:30:46 【问题描述】:

我正在尝试将名称添加到组合框。我想首先查看最近输入的值列表。 例如 名称 约翰 山姆 史密斯 会

我想在组合框下拉列表中看到 将要 史密斯 山姆 约翰

我尝试使用范围函数设置范围,然后遍历范围内的单元格并将它们添加到组合框。

函数 Rangeform() 设置 Rangeform = ActiveSheet.[a1:a50000] 结束函数

对于 Rangeform 中的每个单元格 ComboBox8.AddItem 单元格 下一个

有没有办法设置从最后使用的行到第一行的范围,然后向后循环?

【问题讨论】:

【参考方案1】:

试试这个:

Dim lastrow As Long
Dim i As Long
'change Sheet1 to suit
With ThisWorkbook.Worksheets("Sheet1")
    lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
    'backward loop
    For i = lastrow To 1 Step -1
        ComboBox8.AddItem .Range("A" & i)
    Next i
End With

【讨论】:

它给了我一个编译错误,无效或不合格的 .Range 参考 尝试使用正确的工作表名称明确地使用ComboBox8.AddItem ThisWorkbook.Worksheets("Sheet1").Range("A" & i),而不是Sheet1

以上是关于VBA-Excel ComboBox 具有条目列表,首先显示最后输入的值的主要内容,如果未能解决你的问题,请参考以下文章

“记住”过去条目的方法

Dojox.Mobile.ComboBox 不响应 Android 上的选择

VBA-EXCEL 用变量定义范围

计算有多少列表条目具有以特定char结尾的字符串属性

使用 DropDownOpened 刷新 ComboBox 导致丢失选中

如何使 WPF 列表框中的列对于所有项目具有相同的宽度?