wps如何生成附表清单,wps一键生成详细清单

首页 > 生活 > 作者:YD1662024-11-15 06:53:52

04功能视图

这功能很是方便,但也有不足之处:

一是 “返回目录” 的按钮,不同的工作表都只能固定在一个单元格;

二是有些不需要建目录的工作表,比如隐藏的工作表,也会创建目录,会造成工作表引用无效;

三是只提供了工作表名称,没有链接工作表中的其他信息提供。


因此,使用下文的JS脚本来解决以上问题。

function 设置目录(){ /*********** 参数设置区 **********/ /* 默认工作表单链接元格 defcell_link,此单元格的内容会显示在目录里的第二列 默认‘返回目录’存放的单元格 defback_catalog */ const defcell_link = "A1" const defback_catalog = "D1" //设置自定义工作表单链接元格,此单元格的内容会显示在目录里的第二列 const linksetup = [ /*修改Sheetname, cell_link, back_catalog 双引号中的内容 sheetname 为工作表名称,必须与可见工作表名称一致 cell_link 为【sheetname工作表】内的链接单元格,此单元格内容会被提取到【目录工作表】的第二列 back_catalog 为【sheetname工作表】内存放‘返回目录’的单元格*/ {sheetname: "Sheet2", cell_link: "C1", back_catalog: "F1"}, {sheetname: "Sheet3", cell_link: "B1", back_catalog: "F1"}, //..., ] //需要过滤不需要出现在目录中的工作表名 ,大小写敏感 const filtersh = [ "Sheet1", //"Sheet2", //"Sheet3", //... ] //目录所在Sheet的名字 const catalogname = "目录" /*********** 参数设置区 结束 **********/ //目录区保留3行空白 //目录数据所在区域大小, A 和 B 两列,注:工作表最多有255个 const catalogsize = "A4:B259" let shset = Application.Worksheets let catalogsh= shset.Item(catalogname) catalogsh.Range(catalogsize).ClearContents() let rowindex = catalogsh.Range(catalogsize).Row for (let cursh of shset){//从工作表集合中,循环获取一个工作表 if (cursh.Name == catalogname) { continue }//目录本身 跳过 if (cursh.Visible == false){ continue }//不可见工作表 跳过 if (filtersh.includes(cursh.Name)){ continue }//被过滤掉了 //找到当前工作表名称对应的设置 let cursetup = linksetup.find(e => e.sheetname === cursh.Name) //找不到则默认设置 if (!cursetup){ cursetup = {sheetname: cursh.Name, cell_link: defcell_link, back_catalog: defback_catalog} } //定义超链接地址:指向目标工作表中的“返回目录”单元格 let linkaddress = "'" cursh.Name "'!" cursetup.back_catalog //定义鼠标停留时提示文字 let showhint = "点击跳转到工作表:“" cursh.Name "”" // 加入超链接到目录第一列 catalogsh.Hyperlinks.Add(catalogsh.Cells(rowindex,1), '' ,linkaddress , showhint, cursh.Name) //定义超链接地址:指向目标工作表中“需要提取”的单元格 linkaddress = "'" cursh.Name "'!" cursetup.cell_link //定义鼠标停留时提示文字 showhint = " -【" cursetup.cell_link "】单元格" //目录第2列内容使用公式提取 catalogsh.Cells(rowindex,2).Formula = "=" linkaddress //加入超链接到目录第二列 catalogsh.Hyperlinks.Add(catalogsh.Cells(rowindex,2), "", linkaddress , showhint, cursh.Name) //在当前工作表中加入返回目录的超链接,指向目录中的行位置。 cursh.Hyperlinks.Add(cursh.Range(cursetup.back_catalog), "","'" catalogname "'!A" rowindex, "返回目录", "返回目录") rowindex } }

在脚本的参数设置区,设置相关参数,具体参看脚本中的注释。

测试脚本:

新建一个WPS工作表文件,使用表格下面的新建工作表功能,新增四个工作表,并把第一个工作表重命名为“目录”。

wps如何生成附表清单,wps一键生成详细清单(5)

05新增工作表

在Sheet1~Sheet4中的第一列输入下面的字符,用于测试。

Sheet1工作表的第一行输入:

sheet1的A标题

sheet1的B标题

sheet1的C标题

Sheet2、Sheet3、Sheet4工作表的第一行同样输入:

sheet2的A标题

sheet2的B标题

sheet2的C标题

sheet3的A标题

sheet3的B标题

sheet3的C标题

sheet4的A标题

sheet4的B标题

sheet4的C标题

wps如何生成附表清单,wps一键生成详细清单(6)

06工作表Sheet1~4的标题设置

运行脚本后的结果:

wps如何生成附表清单,wps一键生成详细清单(7)

目录生成1

wps如何生成附表清单,wps一键生成详细清单(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.