ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 给工作表创建带按钮的索引页,和上百个工作表打交道的人有福了

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-8-26 15:11 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:工作表和工作簿
本帖最后由 liucqa 于 2013-9-23 10:41 编辑

年底前,老婆大人的单位要做明年的预算,给她们的模板居然脑残到有96个sheet。这要是用鼠标在导航栏一个个点,手岂不是要抽筋!
而且每次打开文件不需要看全部的sheet,只看其中的十几个。
考虑再三,俺还是心疼老婆大人,决定做一个能够添加索引按钮的宏,解脱老婆的食指,同时方便广大做表格的劳苦小民。

源码奉上(里面部分功能参考几个论坛上各个帖子,在此不能一一列举,谨致感谢)

功能:可以完整无损的copy原文件的sheets至本文件,同时修改原文件内部的excel链接至本文件自身。支持文件打开密码和工作表保护密码输入。但不能支持不同工作表不同密码的情况(有需求的可以自己改程序,也不难)。

索引使用方法:按下指定的控件按钮,对应的sheet显示。再按一次按钮,对应的sheet隐藏。显示出来的sheet左上角有返回索引页的链接。



如果诸位试用有问题,请留贴说明报错的信息,并附上至少一个sheet,我会研究修改。

附件更新v1.41版(Excel2007测试通过),修改一处bug。执行文件时,自检测打开“信任对VBA工程的访问”,执行完毕自动关闭。所以为保安全,程序打开之后至少要执行一次或者手动关闭信任。
给工作表创建按钮V1.411.rar (50.07 KB, 下载次数: 556)

************************************************************************
更新1.411版,补上关闭工作簿时,自动取消“信任对VBA工程的访问”的功能
在2013测试通过

2013.9.23




TA的精华主题

TA的得分主题

发表于 2011-8-26 16:35 | 显示全部楼层
其实只要做Hyerlink就行。
我有一个文件有60多个Sheet,在数据汇总的第一页设置了Hyerlink。很好用。但这个文件用你的办法出错。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-26 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 liucqa 于 2011-8-26 17:06 编辑
Samsea 发表于 2011-8-26 16:35
其实只要做Hyerlink就行。
我有一个文件有60多个Sheet,在数据汇总的第一页设置了Hyerlink。很好用。但这个 ...

发一个附件上来(带1个sheet就行)。  因为控件按钮可以调整背景颜色,容易做区分,看着也漂亮一些。

TA的精华主题

TA的得分主题

发表于 2011-8-26 17:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liucqa 发表于 2011-8-26 19:04
发一个附件上来(带1个sheet就行)。  因为控件按钮可以调整背景颜色,容易做区分,看着也漂亮一些。

发一个附件只带三个sheets。运行发生错误。


9月份钢筋出货月报表.zip (27.28 KB, 下载次数: 195)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-26 18:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 liucqa 于 2011-8-26 18:47 编辑
Samsea 发表于 2011-8-26 17:57
发一个附件只带三个sheets。运行发生错误。

有两个错误,一个是内存溢出,这个是打开你的文件之后你的文件里面的宏自动运行报的错误,不是我的文件报的错误,具体我没有分析。这个问题在程序最前面加一句Application.EnableEvents = False就可以解决。

Private Sub Worksheet_Activate()
  Dim I%, J%, K%, M%, NoSh%, arr2
  
    Sheets(1).Unprotect
  
    MRR = Cells(65536, 2).End(xlUp).row - 1
    MR = Cells(MRR, 2).End(xlUp).row
    NoSh = ThisWorkbook.Sheets.Count
    ReDim arr2(5 To NoSh, 3 To 34)                                                                            就是这句报内存溢出
  
  For I = 5 To NoSh                        '每表
    With Sheets(I)
        RowL = .[D65536].End(xlUp).row
        For K = 3 To RowL                  '每行
            For J = 3 To 33                '每天
                If .Cells(K, 1) = Cells(1, J) And Cells(1, J) <> Empty Then Exit For
            Next
            arr2(I, J) = arr2(I, J) + .Cells(K, 4)
        Next
    End With
Next

[C2].Resize(MR - 1, 32) = arr2
Erase arr2
    Sheets(1).Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True

End Sub

第二个错误:删掉你的内置宏之后再运行我的文件, 报copy方法无效,这个与你的sheet格式有关,有一个基本数据的表是深度隐藏,不能拷贝,回头我改改程序。

谢谢你提供样本。我一直想用VBA彻底实现建立副本的功能,但需要不同的样本测试

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-26 18:54 | 显示全部楼层
本帖最后由 liucqa 于 2011-9-2 17:51 编辑



更新1.3版,
1、增加对深度隐藏工作表的判断,发现之后属性改成0。
2、屏蔽应用程序事件,防止在拷贝时Worksheet_Activate()自动运行
3、增加错误捕捉。

附件在一楼

TA的精华主题

TA的得分主题

发表于 2011-8-26 19:59 | 显示全部楼层
liucqa 发表于 2011-8-26 18:54
更新1.3版,
1、增加对深度隐藏工作表的判断,发现之后属性改成0。
2、屏蔽应用程序事件,防止在拷贝时Wo ...

谢谢分享,能不能给个2003版本。因为无法转换。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-26 21:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lhsh36183 发表于 2011-8-26 19:59
谢谢分享,能不能给个2003版本。因为无法转换。

我没有2003,所以也不知道需要改什么地方,把你使用时的报错信息贴上来看看。如果是ThisWorkbook.VBProject.References.AddFromGuid "{0002E157-0000-0000-C000-000000000046}", 5, 3  引用问题的话,就只能自己找文件了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-30 09:57 | 显示全部楼层
还有没有人用这个发现报错的,有的话发个附件!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-31 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
还有没有人用这个发现报错的,有的话发个附件!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-7 04:51 , Processed in 0.044456 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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