前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用功能加载宏——工作表目录

常用功能加载宏——工作表目录

作者头像
xyj
发布2020-07-28 11:50:35
9210
发布2020-07-28 11:50:35
举报
文章被收录于专栏:VBA 学习VBA 学习

在一个工作簿中,如果工作表太多了,要选中需要操作的Sheet还挺麻烦的。对于Excel用的不大熟练的人,只会按左下角的方向箭头,然后用眼睛去查找,有的人为了让Excel显示多一些工作表名称,还会把右下角的滚动条拉的只剩一点点,造成操作Sheet都不方便。

其实Excel里还有一个方便一点的操作:

在图上那个位置,点击鼠标右键,就能弹出一个新的窗口来选择并激活Sheet,这个操作应该已经很方便了。

当然也可以使用VBA来快速创建一个所有Sheet的目录:

首先在customUI.xml中增加代码:

代码语言:javascript
复制
    <group id="GroupShtWk" label="工作表、工作簿">
     <menu id="rbmenuDir" label="目录&#13;" size="large" imageMso="ViewOutlineView">
      <button id="rbbtnShtDir" label="工作表目录&#13;" onAction="rbbtnShtDir" imageMso="AccessFormDatasheet" />

     </menu>
    </group>

插入一个模块,命名MShtWk。

回调函数:

代码语言:javascript
复制
Sub rbbtnShtDir(control As IRibbonControl)
    Call MShtWk.ShtDir
End Sub

函数实现:

代码语言:javascript
复制
Sub ShtDir()
    Dim i As Long
    Dim result() As Variant
    
    '定义结果数组
    ReDim result(Worksheets.Count, 2)
    
    result(0, 0) = "序号"
    result(0, 1) = "工作表名称"
    result(0, 2) = "跳转"
    
    For i = 1 To Worksheets.Count
        result(i, 0) = i
        result(i, 1) = Worksheets(i).Name
        '使用HYPERLINK创建超链接,这里也可以使用VBA直接创建
        result(i, 2) = "=HYPERLINK(""#'""&RC[-1]&""'!A1"")"
    Next
    
    Dim rngout As Range
    On Error Resume Next
    Set rngout = Application.InputBox("请选择输出单元格", Default:=ActiveCell.Address, Type:=8)
    On Error GoTo 0
    
    If Not rngout Is Nothing Then
        rngout.Resize(Worksheets.Count + 1, 3).Value = result
    End If
    
    Set rngout = Nothing
    Erase result
End Sub

这里的跳转使用的是HYPERLINK函数创建的超链接:

代码语言:javascript
复制
"=HYPERLINK(""#'""&RC[-1]&""'!A1"")"

这个公式使用的是FormulaR1C1样式,要得到这个公式的文本,可以先在一个单元格中设置好公式,然后在立即窗口输入:

代码语言:javascript
复制
?Activecell.FormulaR1C1

其实这里使用VBA直接在对应的单元格创建超链接更好,使用HYPERLINK是为了解VBA配合Excel函数的使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档