ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于单元格下拉菜单内容定位可选的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-2-26 07:35 | 显示全部楼层 |阅读模式
该工作簿中有一个“个人清单”表,我想实现一个不容易实现的功能,就是当我在E3单元格输入任何一人姓名的头一个字时,该单元格马上出现下拉列表,并把该工作簿十四个月中所有姓该姓的工人名字(全名)排列显示出来,不带别的姓氏的名字,(全年每个姓氏的名字可能有几百上千,该表我只是假设性的输入了一些人名)例如我输入“张”字时,下拉内容里显示“张1、张2、。。。。。”等等,不过遇到重名的只能留一个。我想把该单元格所需下拉内容的位置定义在“下拉菜单”表中的A列(暂时只定位了8331人)。说的这么繁琐,烦请高手们帮忙看看,等着有大用,谢谢了!!

[ 本帖最后由 小学童 于 2009-3-2 11:11 编辑 ]

工资表.rar

199.45 KB, 下载次数: 125

TA的精华主题

TA的得分主题

发表于 2009-2-26 09:42 | 显示全部楼层
http://club.excelhome.net/thread-364594-1-1.html

《Excel VBA实战技巧精粹》技巧167的例子(yuanzhuping老师所讲的视频里也有)和你的说法相识
瞅瞅看,行不行

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-26 16:34 | 显示全部楼层
谢谢提示,我刚看了,确实对路,但我的水平要我引用还是挺难的。应我对VBA还没入门,我这表中已有的编写好了的宏都是老师们教的,还有的就是找资料后引用来自己再改了一些自己看的懂的,才使的这个工作簿中有一些功能,其它的学问就无从下手了!要是谁能再帮我把这表现在我所要的这个宏编写个完整的,或许我又还能慢慢看懂!恳请赐教!谢谢了!!

[ 本帖最后由 小学童 于 2009-2-26 17:31 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-2-26 20:19 | 显示全部楼层

回复 3楼 小学童 的帖子

小学童,我找到一个很好下拉菜单宏代码,可我不会英文也不会宏,就不知道要怎么改代码来应用到实际工作中了!真丢人哦!   我的问题 此代码要应用到工作簿中的某一工作表的某一列,代码要怎么修改!
还有数据源工作表是不是就改一下表名就可以了吗?等你学会,可以教下我吗?QQ93075658
联系电话15880844609     想和你交个朋友,可以不!


请看此贴  http://club.excelhome.net/thread-350157-1-1.html    找hupanshan 老师教你!

[ 本帖最后由 思维不定势 于 2009-2-27 16:05 编辑 ]

下拉菜单.rar

10.35 KB, 下载次数: 283

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-27 15:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢你对我的信赖,更感谢你对我的热诚!但让你失望的是我的的确确是一无所知!别看我的积分比你多,那只是我别的本事没有,就好题问。这都是题问所积的分,虽然我有可能学到点东西,但我相信,我现在会的那都是接触了EXCEL的人都会的东西,你从我的昵称就可以想象。学EXCEL确实是耐人寻味,越学越有味,但我也总想有个老师能耐心的教我,当然更希望你比我更有机会咯!
QQ615747370

[ 本帖最后由 小学童 于 2009-2-27 15:47 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-2-27 16:08 | 显示全部楼层

回复 5楼 小学童 的帖子

刚刚有个热心人帮我注释了,我复制来了给你看看!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row < 2 Then Exit Sub
    If Target.Column > 1 Then Exit Sub
    vl = Target.Value
    If Len(vl) > 1 Then Exit Sub
    Target.Select
    On Error Resume Next
    Set sj = Worksheets("Sheet2")  ’这里就是菜单选项数据的来源工作薄,可以把"Sheet2"改成你想要的
    ed = sj.[a65536].End(xlUp).Row    '这里是从哪一列取数据,先找到这一列的最后一个有数据行
    Set rg = sj.Range("a2:a" & ed).Find(vl, LookIn:=xlValues)   ‘设置查找的范围,这里是在a列,从第二行到最后一个有数据的行,把这2个地方的a改成别的就可以从其它列里查找,后面还有一个
    If rg Is Nothing Then Exit Sub
    With Application.CommandBars.Add(Name:="mycell", Position:=msoBarPopup)
        r0 = 1
        r = rg.Row
        Do While r > r0
            r0 = r
            With .Controls.Add(Type:=msoControlButton)
                .Caption = rg.Value
                .OnAction = "bbb"
            End With
            Set rg = sj.Range("a2:a" & ed).FindNext(rg)    '这个也是查找数据的范围
            If Not rg Is Nothing Then r = rg.Row
        Loop
    End With
    If Application.CommandBars("Mycell").Controls.Count = 1 Then
        Application.EnableEvents = False
       rownum = Worksheets(3).[d65506].End(xlUp).Row + 1
        Set ds = Worksheets(3)
        Set xx = ds.Range("d" & rownum)
       '这里设置要把数据输出到哪里,现在是第三个工作薄的d列,修改Worksheets(3)为其它的工作薄,d改成其它的列就可以,bbb进程里也一样的
        xx.Value = Application.CommandBars("Mycell").Controls(1).Caption
        Application.EnableEvents = True
    Else
        Application.CommandBars("Mycell").ShowPopup
    End If
    Application.CommandBars("Mycell").Delete
End Sub


Sub bbb()
    Application.EnableEvents = False
    rownum = Worksheets(3).[d65506].End(xlUp).Row + 1
    Set ds = Worksheets(3)
    Set xx = ds.Range("d" & rownum)
    '这里也是设置输入区域的
    xx.Value = Application.CommandBars.ActionControl.Caption
    Application.EnableEvents = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-27 16:47 | 显示全部楼层
这么快!谢谢了!哦,快下班了。等下晚上我改改看,不知我笨不笨,还是先改改吧!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-27 21:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真的谢谢六楼的朋友!修是修改了个大概,可关键的一个地方总改不成,那就是我总不能把A2单元格输入改到E3单元格。咳,我太笨了,能帮我吗?

[ 本帖最后由 小学童 于 2009-2-28 21:34 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-2-28 16:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
小学童,我想这次这个正是你想要的哦!

[ 本帖最后由 思维不定势 于 2009-2-28 16:25 编辑 ]

不一般的单元格下拉菜单.rar

7.89 KB, 下载次数: 453

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-28 19:54 | 显示全部楼层
不错,不错,比前一个简单好学,不过好象不能实时改变数据。且前一个我也试了多次,在我表里用也总有提取不到的姓名,意思就是提取不大完整,或许,我真是太笨了点吧!让你费心了,你真够朋友,谢谢了!!但我都不好意思说了,我还是想你教就教到底嘛!L

[ 本帖最后由 小学童 于 2009-3-5 07:48 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 21:46 , Processed in 0.045948 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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