ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 13078|回复: 14

[讨论] 这样自动显示下拉列表的功能可以实现吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-2-11 13:50 | 显示全部楼层 |阅读模式
我套用前辈老师们的方法,整理了一个可以根据输入的关键字,自动提示相关内容的查询表,但是不够完美,我希望在输入关键字后,不是只显示下拉三角供我选择,而是自动显示下拉列表供选择,而且可以用方向键,控制光标上下移动,来选择想要的内容,可是不知道这样的功能能否实现,希望大师们给点意见。

产品信息查询.zip

30.94 KB, 下载次数: 387

TA的精华主题

TA的得分主题

发表于 2015-2-11 14:02 | 显示全部楼层
左侧A列已经可以根据输入的关键字自动提示?
没有呀!没看到有VBA

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 14:06 | 显示全部楼层
本帖最后由 lk710618 于 2015-2-11 14:28 编辑
dragonthree 发表于 2015-2-11 14:02
左侧A列已经可以根据输入的关键字自动提示?
没有呀!没看到有VBA

不是使用的VBA,你输入一个关键字,再点下拉三角看看,           不过,我想自动显示下拉列表框,应该得用VBA了吧

TA的精华主题

TA的得分主题

发表于 2015-2-11 14:34 | 显示全部楼层
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Then Exit Sub
    If Target.Row = 1 Then Exit Sub
    Application.SendKeys "%{DOWN}"
End Sub
这样不觉得给操作带来更多的方便。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-2-11 14:35 | 显示全部楼层
数据有效性勉强凑合着用,非要智能化,只有VBA了。 09 根据关键字动态设置数据有效性.zip (14.37 KB, 下载次数: 648)
123.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 14:45 | 显示全部楼层
山菊花 发表于 2015-2-11 14:34
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
...

山总,您的代码放进去后,不太适用,出现2个现象:1、点击A列,出现了下拉列表,但此时只能选择,无法录入了;2、按ESC键退出下拉列表后,录入关键字符,又不再调出下拉列表,只能再次点击下拉三角来选择,所以,这样真的不能给输入带来便捷。我想这主要问题还是您的代码不是针对我想要的结果来的。不过非常感谢山菊花老师的援手

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 14:49 | 显示全部楼层
本帖最后由 lk710618 于 2015-2-11 14:51 编辑
kuangben8 发表于 2015-2-11 14:35
数据有效性勉强凑合着用,非要智能化,只有VBA了。

哈哈,我的这个表,就是根据你的附件改来的。现在我就是想进一步改进一下,在录入第一个字后,不要用鼠标点击下拉三角,而是自动跳出下拉列表来,用方向键上下移动光标,来选择下拉列表中的内容(也就是用鼠标点击下拉列表,跳出下拉选择框的过程,由VBA自动执行)

点评

自学VBA后,你想干啥就干啥。  发表于 2015-2-11 15:04

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 15:07 | 显示全部楼层
kuangben8 发表于 2015-2-11 14:35
数据有效性勉强凑合着用,非要智能化,只有VBA了。

我的水平还太菜,麻烦指导一下吧!

TA的精华主题

TA的得分主题

发表于 2015-2-11 15:16 | 显示全部楼层
不要过于钻这个牛角尖,基本上不可能实现你的目标。
关键一点在于,单元格和下拉列表虽紧密相连,但终究它们是两个部门,中间有道门槛。
处于激活状态的只能是其中一个,单元格或是下拉列表。
你在键盘上按一下↓,等于你发出一个通知,这个通知只能送达一个部门,只能送达到当前处于活动状态的部门,另一个东西(其实它不是东西,真不是东西)不会知道,它不是中统也是不是军统。
当你在单元格录入文字时,下拉列表被封闭,它不会理睬你需要什么,只有停止单元格录入时,点击一下三角按钮或按<Alt+↓>,它才被唤醒,才能为你服务。
下拉列表不是贴身秘书,它是有脾气的。

为什么说基本上不可能呢?话说回来,我也相信一切皆有可能,经常见到高手用API还是其它什么的,总能干出一些似乎不可能的事。
但我还是相信,常规办法几乎不可能。

论坛上不止你一人有这想法,实际上,大有人在。
人家是怎么干的?
用控件。在当前单元格上面覆盖一个文本框,设置隐形边框,让人觉得就是在单元格里干活,然后再在下面连接一个列表框控件伪装成数据有效性的下拉列表。用这两样东西组合,可以实现你想要的效果。
实际上,也不是很多人喜欢用。这是题外话了。

TA的精华主题

TA的得分主题

发表于 2015-2-11 15:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
山菊花 发表于 2015-2-11 15:16
不要过于钻这个牛角尖,基本上不可能实现你的目标。
关键一点在于,单元格和下拉列表虽紧密相连,但终究它 ...

不过像2010版本的自动筛选功能里面的检索就非常好用!但是Excel单元格里好像很难办。
)QRZ{Z0Q3]1RMB8V(]5[`]6.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-11 17:03 , Processed in 0.054942 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表