vba - Excel 2010 : how to use autocomplete in validation list

标签 vba excel excel-2010

我正在使用一个大型验证列表,其中有几个 vlookup() 函数所依赖。这个名单变得越来越大。有没有办法键入我要查找的列表项的第一个字母,而不是手动向下滚动列表搜索该项?

我进行了一些谷歌搜索,但这表明这在早期版本的 Excel 中确实可行,但在 Excel 2010 中不行。希望你们能提供帮助。

最佳答案

这里有一个很好的方法来处理这个问题(在 ozgrid 上找到):

假设您的列表位于 Sheet2 上,并且您希望在 Sheet1 上使用具有自动完成功能的验证列表。

Sheet1 A1 上输入 =Sheet2!A1 并向下复制,包括所需数量的备用行(假设总共 300 行)。隐藏这些行并在引用中使用此公式:对于名为 MyList 的动态命名范围:

=OFFSET(Sheet1!$A$1,0,0,MATCH("*",Sheet1!$A$1:$A$300,-1),1)

现在,在最后一个隐藏行正下方的单元格中使用数据验证,对于列表源使用 =MyList

[编辑] 针对 Excel 2007+ 的改编版本(虽然无法在 2010 上进行测试,但据我所知,没有任何特定于版本的内容)。
假设您的数据源位于 Sheet2!A1:A300 上,并假设您的验证列表(又名自动完成)位于单元格 Sheet1!A1 上。

  1. 创建一个动态命名范围MyList,该范围取决于您放置验证的单元格的值

    =OFFSET(工作表2!$A$1,MATCH(工作表1!$A$1&"*",工作表2!$A$1:$A$300,0)-1,0,COUNTA(工作表2!$A :$A))

  2. 在单元格 Sheet1!A1 上添加引用列表 =MyList

  3. 的验证列表

注意事项

  1. 这不是真正的自动完成,因为您必须先输入内容,然后单击验证箭头:列表将在第一个匹配元素开始您的列表中的

  2. 该列表将一直显示到您的数据末尾。如果您想更精确(仅在列表中保留匹配元素),您可以使用将计算的SUMLPRODUCT更改COUNTA匹配元素的数量

  3. 您的来源列表必须经过排序

关于vba - Excel 2010 : how to use autocomplete in validation list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989763/

相关文章:

python-3.x - 通过 openpyxl 使用公式从 Excel 单元格获取值

sql-server-2008 - 共享查询数据库的 Excel 文件

vba - 当范围为 1 时,循环变量范围的代码失败

VBA - 打开Excel,查找和替换,删除行,另存为csv

c# - 从许多 Excel 文件(xls 格式)中读取数据的理想方法

Excel:返回相对于名称的位置

excel - 在 Excel 中,如何使用另一个单元格中的列表从单元格中获取未知数量的值?

excel - 从对象中获取 Processor.Name

vba - Excel 粘贴到可见、转置为链接组合功能

node.js - Saisjs下载数据流