这可行吗?或者用户开始在其中键入内容后,是否有一种自动完成下拉菜单的方法?
虽然这是一篇旧帖子,但我想改进它,因为关于这个问题没有很多好的信息。我想要添加三个重要点:
从原始列表复制并粘贴时,请使用Paste Special
> Paste link
选项。这样,当您的原始列表更新时,此隐藏列表也将被更新。
有时不可能直接在上方或下方添加此列表。为了使自动完成功能正常运行,这并非必要。唯一必要的是下拉框和下面或上面连接的项目列表之间存在数据链接
。例如,假设您的下拉框位于字段B5
。您的列表可以从B15
开始,前提是第5行和第15行之间有数据链接,可以在A、B或C列中(将其视为必须连接/连续的链条)。这些连接单元格中的数据
可以是任何填充内容,甚至是空格。因此,在我们的示例中,我们只需要在单元格B6
到B14
中添加空格,以使自动完成正常运行。这些数据单元格也可以在A5:A15
或C5:C15
中。听起来很奇怪,但我已经进行了大量测试。请自己尝试!
我想说的最后一点是,能够输入字母并使下拉列表自动完成。当您使用数据验证下拉列表以及自动完成时,这实际上是两个不同的数据下拉列表。如果您输入单元格并按下键盘快捷键Alt + Down Arrow,则会获得在您设置的验证中使用的下拉列表。如果您首先键入字母,然后按下Alt + Down Arrow,则会获得自动完成下拉列表(当前列中的项目列表,由数据连接隐藏或未隐藏)。
现在,这里有一点棘手和奇怪。如果您有大量的项目列表,超过1000个,在您键入第一个字母或几个字母后,Excel会进行背景搜索,从顶部到底部自动填充可能的选项。如果这是一个按字母顺序排列的名称列表,并且您键入了B,然后按下Alt + Down arrow,B名称应该很快出现。(如果没有,请在输入字母后等待一两秒钟。)Excel查找这些项目所需的秒数将随着列表的长度增加而增加,如果您要查找的名称在列表底部,则需要更长时间。因此,如果您要查找以X开头的名称,您将输入X,等待几秒钟,然后按下Alt + Down Arrow,您的列表应该显示以X开头的名称。由于列表长度和机器速度各不相同,需要进行试错。
不要打破链条
方法的突出显示:https://youtu.be/PVEzHbdHf1Y。前往 工具 > 选项 - 编辑,启用单元格自动完成
值 移动您的项目列表到立即位于
验证单元格上方的范围中。隐藏验证单元格上方的行。
参考来源:
我有一种替代方法,它使用Offset()
从下拉单元格输入的文本点开始列出列表。
例如,对于一个国家列表,键入Can
将以Canada
开头。只需键入C
即可以Cambodia
开头。
请注意,为使此方法生效,需要关闭错误警报。
关键是使用以下公式作为列表源。
=OFFSET(<I>CountriesListFirstCell</I>,MATCH(<I>DropDownCell</I>&"*",<I>CountriesListcolumn</I>,0)-2,0,COUNTA(<I>CountriesListColumn</I>)-MATCH(<I>DropDownCell</I>&"*",<I>CountriesListColumn</I>,0)+1,1)