Dan*_*iel 6 autocomplete data-validation microsoft-excel
当我在 excel 中创建自定义下拉列表时,当我开始在下拉列表单元格中键入时,我的 excel 表不会缩减为较小的列表。
例如,如果我的下拉列表是针对美国各州 [AL...WY] 并且我输入字符“N”,为什么我的下拉列表没有给我一个选项子集 [...NY...NJ。 ..]。甚至可以完成子集自动完成吗?
注意:我创建了我的 excel 下拉列表,如下所示:http : //danielk.org/blog/2009/09/22/excel/
那是因为这不是 Excel 中数据验证的工作方式。您需要使用 Active X 控件。一般请参阅Contextures 数据验证页面,特别是她的ComboBox Data Validation和ComboBox Depend示例。
更新
如果您确实使用她的示例,请将 TempCombo_KeyDown 事件处理程序替换为 TempCombo_KeyUp。至少在我的Excel(Excel 2003 SP2)上它崩溃了。
关于我向您指出的示例的更多血淋淋的细节:
我不确定为什么将 TempCombo_KeyDown 更改为 TempCombo_KeyUp 有效,但它可能与 KeyCode 有关。MSDN 暗示 KeyCode 实际上是一个指针,并且出于所有实际目的都是通过 ref 传递的,即使签名显示为 ByVal。崩溃总是发生在 TempCombo_KeyDown 的 End Sub 行上。
这只是我的猜测,但是通过处理 KeyDown 事件,在新单元格被激活后,如果它有 TempCombo,则该对象被激活并且可以处理 KeyUp 事件。如果目标单元格没有激活 TempCombo,则 KeyUp 事件没有有效的对象引用,并且您会遇到严重的崩溃。