我在工作表上有一个ActiveX Combobox控件,这是_Change
事件代码
Private Sub ComboBox1_Change()
Me.ComboBox1.ListFillRange = "ItemSearch"
Me.ComboBox1.DropDown
End Sub
当我使用键盘上/下键移动列表时,它会自动退出Excel。
有谁知道这个问题的解决方案?我基本上想要一个动态的ComboBox。
答案 0 :(得分:3)
当您更改所选选项时,您正在强制更新Combobox的可能值,
这就是它崩溃的原因。
您可以尝试在此事件中保留Me.ComboBox1.DropDown
。
但是.ListFillRange
应该是另一个事件:
如果您尝试使用某种自动完成行为,则可以使用内置属性:
MatchEntry
属性0 - fmMatchEntryFirstLetter
答案 1 :(得分:0)
只有在未选择任何项目的情况下,我才通过设置ListFillRange来解决此问题,即
<script>
const input = document.getElementById("recserv");
const result = document.getElementById("result");
function yeartot(service) {
const checkedService = document.querySelector(":checked");
var recserv = Number(document.getElementById("recserv").value);
document.getElementById("result").value =
Number(checkedService.value) * Number(input.value);
}
</script>
这解决了错误,并且是可取的,因为(至少在我的情况下)选择某项时范围只能有一项。因此,用户可以输入自动填充的类型,但是当他开始使用箭头时,他可以从已过滤的到目前为止的值中进行选择。
完整示例可用there。与用户输入的this often mentioned example不同,它可以过滤出与当前输入不匹配的条目