ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 怎样快速知道哪一列(几列)处于筛选状态?并快速定位到筛选列的位置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-11-20 22:50 | 显示全部楼层 |阅读模式
如果一个表有很多列,对其中一列或几列设置了筛选之后,怎样快速找到这几列呢?
怎样快速定位到这几列的位置呢?

---------------------------------

比如:表格共有A~CR列,2000行数据;
我先对 BF列 设置了筛选,然后拖着横滚动条,拖到 E列 查看我的数据,
查看完需要的数据后,
接下来,要对 BF列 取消筛选,继续对其他列的筛选设置,
这时,又拖着滚动条,拖到 BF列 …………
(拖来拖去的很影响效率)

---------------------------------

怎样能查看完 E列 数据后,快速回到 BF列 呢?
快速回到设置了筛选的这一列(也可能是多列)


---------------------------------

想到过方法,比如:
记住设置筛选的这个,是BF列,然后需要回去的时候,定位到单元格 BF1。

---------------------------------

有没有更便捷的?
要是能用宏设置快捷键之类的更好啦~

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-20 22:53 | 显示全部楼层
小白一枚,望各路大神不吝赐教哦

TA的精华主题

TA的得分主题

发表于 2018-11-20 23:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
定位筛选方法不知道

TA的精华主题

TA的得分主题

发表于 2018-11-20 23:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不过可以视图拆分窗口,达到同时固定四个筛选列的目的,不用来回倒腾

TA的精华主题

TA的得分主题

发表于 2020-2-15 11:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
2003版中只有下拉箭头是蓝色的,很不明显。建立放大了看

TA的精华主题

TA的得分主题

发表于 2020-10-21 09:58 | 显示全部楼层
好像没有这种更快捷的方法,我的方法是将文档存储为xlsm格式,写入VBA代码,思路是在代码里让所有的列号取消隐藏,然后弹出一个inputbox,让筛选内容=inputbox的值,把宏绑定一个按钮或者快捷键,这样就可以每次输入内容就自动筛选,并且自动取消筛选,不用你去找它的位置。

TA的精华主题

TA的得分主题

发表于 2020-10-25 17:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主你好:
用函数无法实现,但是VBA可以直接实现。我上面给的方法是以前自己写的,数据小的时候很好用(比如2000行,20列数据)的话。但是如果你有上万行数据,上百列的时候很超级慢了,所以经过对VBA仔细研究,发现其实有现成又直接的方法可以调用,以下结合我自己的需求和网上找的方法修改而来的代码。你要看一下你的筛选符号是第几行,自己修改一下cells(9,i)中的行号,就可以了。好了,上代码:

Sub 已筛选位置判断()
Dim i As Integer, Str, Count, YuanSu, AddC
'检查是否设置了自动筛选
If ActiveSheet.FilterMode = False Then
MsgBox "没有设置自动筛选,不必担心遗漏!", vbCritical, "小哥哥你好:"
Exit Sub
Else
'MsgBox "有筛选"
For i = 1 To ActiveSheet.AutoFilter.Filters.Count
    '检查该字段是否有设置筛选条件
    With ActiveSheet.AutoFilter.Filters.Item(i)
        If .On Then
        YuanSu = .Count
        AddC = Split(Cells(9, i).Address, "$")(1)   'i就是有筛选符号的列,它是一个数字,被称呼为字段,通过cells(R,C)函数对象找到address,再通过split函数去掉后面一个$符号,获得简写的列标。
        MsgBox AddC & i & Chr(13) & Chr(13) & "此列存在筛选,当前显示了其中的: " & YuanSu & "个元素项.", vbExclamation, "第" & i & "列" & "即:" & AddC & i
        Range(Cells(9, i), Cells(9, i)).Select
        End If
    End With
    Next
End If

亲测有效,而且和很快速哦。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-10-26 11:44 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-10-26 21:05 | 显示全部楼层
可以尝试一下把筛选列 和 查看列分别设置名称,通过名称栏的选择来完成跳转。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 17:49 , Processed in 0.024913 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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