已收录

工作表太多?给每张表加一个"下拉即跳转"菜单,选中表名直接切过去

Mr Chen
Mr Chen WPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

回复贴:

https://bbs.wps.cn/topic/98401?chan=share&fromshare=copylink&shareType=copylink

一、先看效果

工作簿里工作表一多,来回切表全靠点底部标签,找半天。试试这个:在任意工作表点一下 A1 的下拉箭头,选中表名,自动跳转,全程只点一次。

二、原理其实就两句话

  1. 数据验证下拉 —— 把工作表名列表做成一个下拉菜单,负责"选";

  1. 工作表 Change 事件宏 —— 检测到 A1 的值一变,就激活对应名字的工作表,负责"跳"。

下拉负责选,宏负责跳,两者配合,就是"选中即跳转"。

三、三步实现(每步都有图)

第 1 步:建一个"目录"表,集中管理表名

新建一张工作表命名为「目录」,把工作簿里所有工作表的名字从 A2 开始依次填好:

这是所有下拉菜单的唯一数据源。以后新增工作表,只需要在这里补一行名字,所有表的下拉会自动多出这个选项,不用改任何设置。

第 2 步:每张表放一个下拉菜单(约 10 秒/张)

对每一张工作表(目录表除外):

  1. 选中左上角 A1 单元格(也可以换成任意固定的空白单元格);

  1. 菜单栏【数据】→【有效性】→ 允许选「序列」;

  1. 来源填这一串(重点):就是你目录中的所有的工作表的名称。

确定后,A1 右侧就会出现下拉箭头,点开就是全部表名。

第 3 步:粘贴宏代码(关键一步)

按 Alt+F11 打开宏编辑器,左侧工程树里双击每一张工作表,把下面代码粘贴进去(每张表粘贴一次,代码相同):

▶ Excel 用 VBA 代码

vba

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "A1" Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Application.EnableEvents = False
    On Error Resume Next
    Worksheets(Target.Value).Activate   ' 选中表名 → 直接跳转
    On Error GoTo 0
    Target.ClearContents                ' 跳转后清空,下次进来下拉是空的
    Application.EnableEvents = True
End Sub

▶ WPS 表格用 JS 宏代码(无需安装 VBA 插件)

javascript

// WPS 表格:双击左侧对应工作表节点后粘贴
function Worksheet_Change(area) {
    if (area.Address(false, false) !== "A1") return;
    var name = area.Value2;
    if (!name) return;
    try {
        Worksheets(name).Activate();
        area.ClearContents();   // 跳转后清空,下次进来下拉是空的
    } catch (e) {}
}

四、几个小贴士

  • Excel 用户保存时选择「启用宏的工作簿 (.xlsm)」,WPS 表格默认支持宏,直接保存即可;

  • 跳转后 A1 会自动清空,不会残留上次的选择,下次点开下拉是干净的;

  • 表名尽量用简短无重复的名字,避免误跳;

  • 如果工作表特别多、不想逐张粘贴代码,可以回复问我要「类模块」写法 —— 代码只写一次,全部工作表统一生效。

其实还有一种最简单的方法,就是直接用灵犀,告诉你的需求,灵犀就可以全程搞定,不用自己动手定制,但是如果担心文件信息,那就用我的方法直接手搓一个,大概也就几分钟的时间。

五、适用场景

分班成绩表、课程表、跨部门汇总表、多表台账……凡是"一个工作簿几十张表"的文件都适用。欢迎试过的小伙伴回来交流心得,有更妙的做法也可以在下面分享!

甘肃省
浏览 138
2
14
分享
14 +1
10
2 +1
全部评论 10
 
游泳的盐
谢谢你的帮助,点赞、收藏、学习!
举报
1
1
Mr Chen
Mr ChenWPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

社区的伙伴们,互相学习,互相帮助。
· 甘肃省
举报
0
0
 
LUKY
好帖子,点赞、收藏、学习!
   广东省
举报
2
1
Mr Chen
Mr ChenWPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

感谢大佬的支持。
· 甘肃省
举报
0
0
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官KVP

Lv.3 优质创作者

点赞,陈老师的技能,又学到一招
   福建省
举报
2
1
Mr Chen
Mr ChenWPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

感谢!洪老师的支持。🙏
· 甘肃省
举报
0
0
 
CJ
打开 过来学习一下
   浙江省
举报
2
1
Mr Chen
Mr ChenWPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

互相学习,感谢大佬。
· 甘肃省
举报
0
0
 
临商珑胜
临商珑胜 Lv.2 潜力创作者WPS产品体验官

Lv.2 潜力创作者

高手!终于见到写WPS_JS宏代码的好帖!
举报
2
1
Mr Chen
Mr ChenWPS资深用户Lv.3 优质创作者KVPWPS产品体验官WPS寻令官

Lv.3 优质创作者

感谢大佬,非常感谢!
· 甘肃省
举报
0
0