ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何通过关键字筛选二级下拉菜单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-1-5 12:43 | 显示全部楼层 |阅读模式
本帖最后由 默默+1 于 2023-1-5 14:44 编辑



在第一个表格中有两级下拉菜单,选择“部门”后,可以选择“人员”和“项目名称”,但是项目名称太多了,希望能在项目名称那个单元格内输入关键字后选择下拉菜单,此时下拉菜单中只出现含有该关键字的项目,可以实现吗


第一次发帖求助,希望各位大神帮忙~



我更新了一下表格,这回应该比较清楚了~~~

测试.zip

31.74 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2023-1-5 13:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你项目明细和人员  部门没有关联关系    怎么建立二级关系?

工作簿1.rar

10.04 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-5 13:36 | 显示全部楼层
hugeinfo 发表于 2023-1-5 13:26
你项目明细和人员  部门没有关联关系    怎么建立二级关系?

昂,我之前做了,在自己的表里,这个表是新建的来说明一下我的问题,其实这个项目也应该是分部门的,一级下拉菜单关键字筛选我大概知道怎么做,但是这个二级下拉菜单我就没搜到。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-5 13:38 | 显示全部楼层
我突然发现自己好像没说清楚。。。项目也要跟部门关联,选了部门以后再选择项目,然后通过输入关键字选择下拉菜单,可以实现吗

TA的精华主题

TA的得分主题

发表于 2023-1-5 13:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
默默+1 发表于 2023-1-5 13:38
我突然发现自己好像没说清楚。。。项目也要跟部门关联,选了部门以后再选择项目,然后通过输入关键字选择下 ...

主要你项目表也没写部门怎么关联

TA的精华主题

TA的得分主题

发表于 2023-1-5 14:03 | 显示全部楼层
Private Sub Worksheet_Change(ByVal T As Range)
If T.Row > 1 And T.Column = 3 Then
    If T.Count > 1 Then End
    If T.Value = "" Then End
    Dim d As Object, dc As Object
    Set d = CreateObject("scripting.dictionary")
    With Sheets("项目明细")
        r = .Cells(Rows.Count, 1).End(xlUp).Row
        If r < 2 Then MsgBox "项目明细为空!": End
        ar = .Range("a1:a" & r)
    End With
    zd = T.Value
    For i = 2 To UBound(ar)
        If InStr(ar(i, 1), zd) > 0 Then
            d(ar(i, 1)) = ""
        End If
    Next i
    T.Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(d.keys, ",")
    End With
    T.Select
End If

End Sub
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Row > 1 And T.Column = 3 Then
    T.Validation.Delete
End If
End Sub

TA的精华主题

TA的得分主题

发表于 2023-1-5 14:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
工作簿1.rar (18.25 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

发表于 2023-1-5 14:05 | 显示全部楼层
vba完成的,没有考虑,部门,人员,因为你目前的表格,是没法关联的

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-5 14:13 | 显示全部楼层
3190496160 发表于 2023-1-5 14:05
vba完成的,没有考虑,部门,人员,因为你目前的表格,是没法关联的

大神再帮我看看呗,我改了一下表格

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-5 14:43 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-28 02:59 , Processed in 0.046281 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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