二维码 购物车
部落窝在线教育欢迎您!

最快捷的Excel目录制作:不用公式,只需3次复制粘贴

 

作者:夏雪来源:部落窝教育发布时间:2018-10-21 18:06:18点击:5597

分享到:
0
收藏    收藏人气:2人
版权说明: 授权作品,禁止转载。

编按:

文件中如果有多张工作表,切换就成了问题。尤其是提交给老板的文件更应该考虑工作表的快速切换。通常采用目录索引的方式进行工作表的切换。只不过常见的目录索引做法存在单向跳转,或者目录挤占页面的情况。本篇教程,则通过最简单的3步操作——都是复制粘贴给出的代码,实现全自动更新、双向跳转,并且不挤占工作页面的目录。

 

工作中,如果数据量大工作表多文件,查看数据就需要来回切换工作表,操作很不便。于是就有了目录索引。

网上Excel目录索引教程有两种,都只实现了单向跳转:

1种,目录只存在“目录”工作表里。

单击目录,切换到需要的工作表。

缺点:

只是单向跳转,无法从工作表返回目录,工作表之间的切换仍然很不方便,需要单击工作表标签才能切换。

目录不会自动更新。增加新的工作表后,需要在目录里手动填充公式才能更新目录。

 

 

2种,目录存在所有工作表里。

单击目录,可以方便的在各个工作表中切换。

缺点:

目录挤占页面空间

目录不会自动更新。增加新的工作表后,需要在目录里手动填充公式才能更新目录。

 

 

今天要分享给大家的是做可以双向跳转、全自动更新的目录索引:

◎单击目录,跳转到工作表,双击工作表单元格,跳转到目录

◎增加、删除了工作表后,目录自动更新,不用手动填充公式

◎不但能快速实现工作表之间的切换,目录也不挤占页面空间。

效果如下:

 

 

第一步:生成工作表目录

1)输入代码

Alt+F11打开VBA编辑器,然后在左侧工程资源管理器窗口,双击EXCEL对象里面的“Sheet1(目录)”,在右侧的代码窗口输入如下代码(加群可以下载代码:

Private Sub worksheet_activate()

  Dim i As Integer, ss As String

    Range("a:a").Clear  '清空A

    For i = 1 To Worksheets.Count

        Range("A" & i).Value = Worksheets(i).Name '逐个获取工作表名称

Next i

End Sub

单引号'用于代码注释,其后的信息在VBA窗口里会显示为绿色,不会作为代码执行。

 

 

解析:

Activate表示工作表激活。上述代码表示:一旦从其他工作表跳转到目录工作表,就执行代码,逐个获取工作表的名称,在目录工作表的 A列生成目录。

2)生成目录

首先单击任何一个非目录工作表,然后再单击切换到“目录”工作表,完成目录生成。

 

 

第二步:目录跳转到各工作表

打开VBA编辑器,双击EXCEL对象里面的“Sheet1(目录)”,在右侧的代码窗口输入如下代码:

Private Sub worksheet_SelectionChange(ByVal target As Range)

Dim sht As Worksheet

    If target.Count > 1 Then Exit Sub '单击多个单元格不执行代码

    On Error Resume Next '碰到错误继续执行

    Set sht = Worksheets(target.Value) '查看是否存在以Target.Value命名的工作表

    If Err.Number = 0 Then '如果错误为0,即工作簿存在以Target.Value命名的工作表,否则就不执行代码

         Worksheets(target.Value).Activate '激活该工作表

    End If

End Sub

   

 

解析:

SelectionChange表示点击单元格。上述代码意思:单击目录列中的某单元格就会跳转到以该单元格值命名的工作表。为了排除错误跳转,代码还设置了单击多个单元格不跳转、如果不存在以单元格值命名的工作表也不跳转等规则。

 

 

第三步:由各工作表跳回目录

打开VBA编辑器,然后在左侧工程资源管理器窗口,双击EXCEL对象里面的“ThisWorkbook”,在右侧的代码窗口输入如下代码:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    Worksheets("目录").Activate

End Sub

 

 

解析:

SheetBeforeDoubleClick表示双击单元格。上述代码意思:在任一工作表内双击单元格就跳转到“目录”工作表。

 

 

Ok,现在我们就实现了双向跳转的全自动目录索引创建。

最后提醒大家一下,如果想在工作簿使用VBA代码,除了EXCEL2003其他版本的都要保存为EXCEL启用宏的工作簿“xlsm”格式哦!

 

 

下载:

本文配套的练习课件与代码请加入QQ群:264539405下载。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

http://www.itblw.com/ewebeditor/uploadfile/20180914164059384001.png

相关推荐:

用GET.WORKBOOK函数实现excel批量生成带超链接目录且自动更新——典型的单向跳转目录

Word自动生成目录很简单,3步搞定!——了解一下WORD目录也不错

Excel-VBA小白脱白记——VBA发憷的人很适合

版权:

原文:最快捷的Excel目录制作:不用公式,只需3次复制粘贴

作者:夏雪

出处:http://www.ittribalwo.com/article/4469.html