ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请帮忙实现筛选功能

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-3 14:58 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
表格筛选不能实现,可否帮忙解决问题,谢谢!

帮忙设置VBA公式 谢谢.zip

25.33 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2023-2-3 15:54 | 显示全部楼层
只做了全部公司的数据提取,因为你这个表选择单个公司时无法正常显示。

个人建议你把单个公司的选择放到一个单元格中去比较好。
现在的代码加个条件判断也适合单个公司的数据提取。

帮忙设置VBA公式 谢谢.zip

33.79 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2023-2-3 15:57 | 显示全部楼层
本帖最后由 ykcbf1100 于 2023-2-3 16:31 编辑

      因为审核,多发一次。现在删除。               

TA的精华主题

TA的得分主题

发表于 2023-2-3 16:01 | 显示全部楼层
简单凑了一个,代码如下,供参考:


模块中:


9694.png


工作表事件:
9693.png

TA的精华主题

TA的得分主题

发表于 2023-2-3 16:16 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
    Set d = CreateObject("scripting.dictionary")
    r = Sheets("数据采集").Cells(Rows.Count, 2).End(3).Row
    arr = Sheets("数据采集").[a3].Resize(r - 2, Sheets("数据采集").UsedRange.Columns.Count)
    If Len(Target) = 0 Then Exit Sub
    If Target.CountLarge <> 1 Then Exit Sub
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    If Target.Address(0, 0) = "B1" Or Target.Address(0, 0) = "D1" Then
        x = 3 * (Val([d1]) + 1)
        If [b1] = "全部" Then
            y = 6
            For j = x To x + 2
                For i = 1 To UBound(arr)
                    arr(i, y) = arr(i, j)
                Next i
                y = y + 1
            Next j
            ActiveSheet.UsedRange.Offset(2).ClearContents
            [a3].Resize(UBound(arr), 8) = arr
        Else
            r = 0
            For j = 1 To UBound(arr)
                If arr(j, 2) = [b1] Then
                    r = r + 1
                    y = 6
                    For i = 1 To 5
                        arr(r, i) = arr(j, i)
                    Next i
                    For i = x To x + 2
                        arr(r, y) = arr(j, i)
                        y = y + 1
                    Next
                End If
            Next j
            ActiveSheet.UsedRange.Offset(2).ClearContents
            [a3].Resize(r, 8) = arr
        End If
    End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set d = CreateObject("scripting.dictionary")
    arr = Sheets("数据采集").UsedRange
    If Target.Address(0, 0) = "B1" Then
        d("全部") = ""
        For j = 3 To UBound(arr)
            If Len(arr(j, 2)) > 0 Then
                d(arr(j, 2)) = ""
            End If
        Next j
        Call ttt([b1], d)
    Else
       If Target.Address(0, 0) = "D1" Then
            For j = 6 To UBound(arr, 2)
                If Len(arr(1, j)) > 0 Then
                    d(arr(1, j)) = ""
                End If
            Next j
            Call ttt([d1], d)
        End If
    End If
End Sub

Sub ttt(rng, d)
    With rng.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=Join(d.keys, ",")
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .IMEMode = xlIMEModeNoControl
        .ShowInput = True
        .ShowError = True
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2023-2-3 16:17 | 显示全部楼层
搞了一个类模块自动判断的,供参考:



附件: 类模块实现多OptionButton点击事件.zip (33.13 KB, 下载次数: 16)

.

TA的精华主题

TA的得分主题

发表于 2023-2-3 16:18 | 显示全部楼层
使用了两个表格事件,第一行做了做了调整

帮忙设置VBA公式 谢谢.zip

24.22 KB, 下载次数: 15

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-3 17:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-2-3 18:11 | 显示全部楼层
image.png

帮忙设置VBA公式 谢谢.rar

190.49 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2023-2-3 18:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 tmplinshi 于 2023-2-3 19:05 编辑

image.png

SQL筛选数据.zip

44.31 KB, 下载次数: 14

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 10:24 , Processed in 0.046024 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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