excel宏实现工作表索引,点击按钮隐藏/显示对应工作表

当单个excel工作簿有很多工作表时,使用起来会有麻烦,虽然excel提供隐藏工作表功能,但点击及查找并不方便。如果能够在一个工作表中实现目录索引功能,点击按钮即可隐藏/显示对应工作表,会非常方便操作和查看。

一、编写宏

1编写一个点击按钮显示/隐藏工作表的按钮宏

Sub click()
For x = 1 To Sheets.Count
If Sheets(x).name = ActiveSheet.Buttons(Application.Caller).Caption Then
If Sheets(x).Visible = 0 Then
Sheets(x).Visible = -1'设置显示
Else
Sheets(x).Visible = 0'设置隐藏
End If
End If
Next x
End Sub

2编写一个隐藏除了索引外全部工作表的点击宏

Sub 隐藏()
For x = 1 To Sheets.Count
If Sheets(x).name <> "炼金配方索引"  ThenSheets(x).Visible = 0
End If
Next x
End Sub

3编写一个新建与按钮同名的工作表的宏

Sub 新建配方z()
Dim name As String
Dim bool As Integer
bool = 0
name = ActiveSheet.Buttons(Application.Caller).Caption
If Sheet10.Visible = 0 Then
Sheet10.Visible = -1
bool = 1
End If
Sheet10.Copy after:=Worksheets(Worksheets.Count)      '永远将新表加入到最后一个工作表之后
ActiveSheet.name = name           '新的工作表为当前活动的工作,将工作表的名称更改为神山表中对应单元格的名字。
If bool = 1 Then
Sheet10.Visible = 0
End If
MsgBox "该配方不存在,已为您创建新的样本!"
End Sub

注意:由于复制一个新的工作表的显示状态与原工作表相同,故需要先显示原来的工作表,再隐藏

4编写一个新建配方的按钮宏

Sub 新建配方()
Dim name As String
Dim bool As Integer
bool = 0
name = InputBox("配方名称:")
If name <> "" Then '防止点击了取消按钮对话框后出现空按钮的情况
Dim isExists As Boolean, s As Worksheet
isExists = False   '检测是否已经同名工作表,防止无法生成工作表的情况For Each s In ThisWorkbook.SheetsIf s.name = name ThenisExists = TrueEnd IfNext s
If isExists = False Then
Set shp = ActiveSheet.Buttons.Add(Rnd * (400 - 30 + 1) + 30, Rnd * (200 - 30 + 1) + 30, 100, 40)  '将新建的按钮创建在区域内的随机位置
shp.Characters.Text = name
shp.OnAction = "sheet4.main2"  '给新建的按钮链接一个宏
If Sheet10.Visible = 0 Then
Sheet10.Visible = -1
bool = 1
End If
Sheet10.Copy after:=Worksheets(Worksheets.Count)      '永远将新表加入到最后一个工作表之后
ActiveSheet.name = name           '新的工作表为当前活动的工作,将工作表的名称更改为神山表中对应单元格的名字。
If bool = 1 Then
Sheet10.Visible = 0
MsgBox "创建样本及按钮完成!"
End If
Else: MsgBox "已存在该配方!"
End If
End If
End Sub

5编写一个主宏,用于赋给索引按钮

Sub main2()Dim isExists As Boolean, s As Worksheet
isExists = False '假如同名工作表不存在,则引用“新建配方z”For Each s In ThisWorkbook.SheetsIf s.name = ActiveSheet.Buttons(Application.Caller).Caption ThenisExists = TrueEnd IfNext s
If isExists = False ThenCall 新建配方z
Else '假如同名工作表存在,则引用“click”
Call click
End If
End Sub

6编写第二个主宏,用于赋给新建配方这个按钮

 Sub main()Call 新建配方
End Sub

二、新建按钮连接到宏

1.手动创建与工作表同名的按钮,都链接到宏:sheet4.main2
2.手动创建一个名为“隐藏全部”的按钮,链接到宏:seet4.隐藏
3.手动创建一个名为“创建新工作表”的按钮,链接到宏:sheet4.main

三、使用索引功能

1.对于已有的工作表:点击与工作表同名的按钮可实现隐藏/显示
2.想要新建一个工作表:点击按钮“创建新工作表”弹出输入框,输入名称后会新建一个工作以及一个同名按钮。

excel宏实现工作表索引,点击按钮隐藏/显示对应工作表相关推荐

  1. vue点击按钮切换显示不同内容_邂逅Vue

    01 什么是Vue.js Vue (读音 /vjuː/,类似于view) 是一套用于构建用户界面的渐进式框架. 看到这里,你就会问了,什么是渐进式? 渐进式就是你可以将Vue作为一个项目中的部分组件改 ...

  2. php点击按钮显示隐藏代码,jQuery中点击按钮实现显示与隐藏的方法

    jQuery能够简单快捷的实现很多功能,因此在前端开发中被广泛使用,正在学习jQuery的小伙伴,你会用jQuery实现点击显示再次点击隐藏的效果吗(即jQuery二次点击隐藏)?这篇文章就和大家讲讲 ...

  3. oracle显示多表数据,Oracle DB 使用连接显示多个表中的数据

    在Oracle9i之前的发行版中,该联接语法与美国国家标准协会(ANSI) 的标准不同.与以前发行版中的Oracle 专用联接语法相比,符合SQ • 编写SELECT语句,以使用等值联接和非等值联接访 ...

  4. html点按钮展开图片,案例:点击按钮隐藏图片 再次点击显示图片

    要求如题,本宝宝的代码如下: Document .hide{ display: none; } 隐藏图片 function fn(){ var img=document.getElementById( ...

  5. 点击按钮时显示按钮被按下的效果

    在实际项目中,为了提供给用户更加好的用户体验,在点击按钮时,要能显示按钮被按下时的状态,给用户一种动态的感觉. 其实这在程序中实现起来也比较容易,只需多一张按钮背景图片即可,在按钮没有按下或者弹起时显 ...

  6. JavaScript网页中点击按钮切换显示的内容

    前言: 我是实习两个月的前端开发实习生, 最近在制作公司的官方网站过程中遇到了一个网页前端开发中比较普遍的需求: 点击不同的按钮 页面上的内容随之更换, 并且按钮的背景颜色也要呈现为被选中的样式. 以 ...

  7. php 表单 同步,Jquery点击按钮 异步和同步提交表单

    最近在开发一个jsp学生信息管理系统,由于刚刚接触jsp,遇到问题比较多,特此记录与大家分享. Jquery ajax提交表单到servlet示例 前台部分代码: 姓名 学号      ajax提交表 ...

  8. 工作215:点击按钮报错

    获取值有点问题 点击同一按钮获取值有问题

  9. Excel:动态图表展示(点击按钮选择不同的员工名字,自动呈现对应的数据展示)

    现在有四名员工的各季度销售数据,现在想在Excel中动态展示. 第一步:任意选择一个单元格,再点击数据-数据验证会出现如下选择框. 第二步:在上述选择框的来源处,选中姓名(四个员工名字)那一列,则会出 ...

  10. 点击按钮执行php函数,从表单按钮调用PHP函数

    搜索热词 好吧,我的脚本应该看起来像那样.我必须主要在PHP中进行操作.按钮添加应将数据保存到文件,显示应读取该文件并将其放入textarea,删除必须删除所选行,然后重置将重置所有内容. $plik ...

最新文章

  1. Linux怎么关闭ssh和ftp服务,linux ftp启用和停用及vsftpd安装 ssh 启用和停用命令及ssh的安装...
  2. git merge 和 git rebase详解
  3. pitch android,Pitch Clash
  4. 乌班图系统16.04安装
  5. 旺财速啃H5框架之Bootstrap(五)
  6. pdf温度记录仪开发_蔬菜、鲜果、奶制品冷链温度监控系统监控食品让客户放心...
  7. MaxCompute Spark 使用和常见问题
  8. ASP.NET Core:使用IdentityServer构建可靠的身份验证和授权系统
  9. LeetCode-删除中间节点
  10. 前端后台的爱恨情仇——接口调试
  11. 2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)
  12. Linux怎么去掉secondary地址,有关IP aliasing, Primary address和Secondary address
  13. Mac单机多实例Mysql(8.0.16)主从配置
  14. 精简指令集与复杂指令集
  15. 安全加密 - 秘钥和算法关系
  16. D3DCompiler_47.dll丢失怎么解决-D3DCompiler_47.dll丢失怎么办
  17. 关于WPF(二)XAML
  18. (Python)确定文件名的后缀名(扩展名)
  19. VC++获取系统当前时间并显示
  20. 四旋翼无人机学习第22节--padstack editor创建过孔

热门文章

  1. JAVA爬虫挖取CSDN博客文章(续)
  2. R语言TCGA数据下载及处理biolinks包的学习与使用(一)数据下载
  3. WhatsApp即时翻译WhatsApp聊天自动翻译成中文
  4. 计算机编程的地位,学习编程的重要性
  5. 解决鼠标右键中没有新建选项
  6. 作文 进入中职计算机班,我的中职生活作文(精选5篇)
  7. 邮箱不能发送大附件,什么邮箱可以发送超大附件?
  8. 旧手机改服务器,并配合花生壳实现外网访问的方法
  9. 我的世界 java 种子,我的世界Java版优质种子分享
  10. java openxml_Excel单元格中的OpenXml和Date格式