Pie*_*ter 19 excel vba excel-vba excel-2010
我正在使用一个大型验证列表,其中有几个vlookup()函数依赖.这个清单越来越大了.有没有办法输入我正在寻找的列表项的第一个字母,而不是手动向下滚动列表搜索项目?
我已经完成了一些谷歌搜索,但这表明这在早期版本的Excel中确实是可能的,但在Excel 2010中确实不可能.希望你们能提供帮助.
JMa*_*Max 12
假设您的列表已打开,Sheet2并且您希望使用带有自动完成功能的验证列表Sheet1.
On Sheet1 A1输入=Sheet2!A1并复制,包括所需的备用行数(总共300行).隐藏这些行并在"引用:"中使用此公式,以获取名为MyList的动态命名范围:
=OFFSET(Sheet1!$A$1,0,0,MATCH("*",Sheet1!$A$1:$A$300,-1),1)
Run Code Online (Sandbox Code Playgroud)
现在位于最后一个隐藏行下面的单元格中,使用数据验证和列表源使用 =MyList
[编辑]适用于Excel 2007+的版本(尽管但是在AFAIK上无法测试,但没有真正特定的版本).
假设您的数据源已打开Sheet2!A1:A300,我们假设您的验证列表(也就是自动完成)在单元格上Sheet1!A1.
创建一个动态命名范围MyList,该范围取决于放置验证的单元格的值
=OFFSET(Sheet2!$A$1,MATCH(Sheet1!$A$1&"*",Sheet2!$A$1:$A$300,0)-1,0,COUNTA(Sheet2!$A:$A))
在Sheet1!A1将要引用到列表的单元格上添加验证列表=MyList
注意事项
这不是真正的自动完成,因为您必须先键入然后单击验证箭头:列表将从列表的第一个匹配元素开始
该列表将一直持续到您的数据结束.如果你想更精确(在列表中只保留匹配的元素),你可以改变COUNTAa SUMLPRODUCT来计算匹配元素的数量
您的源列表必须已排序
| 归档时间: |
|
| 查看次数: |
136130 次 |
| 最近记录: |