Excel实战技巧54: 创建导航工作表

2019-09-24 17:54:31 浏览数 (1)

当工作簿中的工作表不多时,我们只需要单击底部的工作表名到达想要操作的工作表。然而,当有很多工作表时,要找到想要的工作表就需要边单击滚动按钮边查找工作表,这可能要花点时间了。

其实,我们可以创建一个导航工作表,将工作簿中的所有工作表名称都放置到导航工作表中,并设置到工作表的链接,这样,我们只需要单击工作表名称,即可到达相对应的工作表。同时,在每个工作表中,放置回到导航工作表的链接,这样单击该链接就可以迅速回到导航工作表。这样更方便快捷,如下图1所示。

实现上述功能的VBA代码如下:

Sub NavigateWorksheet()

Dim wks As Worksheet

Dim i As Integer

i = 0

'如果存在"导航"工作表,则清除其内容

'如果不存在"导航"工作表,则添加

If SheetExists("导航") Then

Cells.ClearContents

Worksheets("导航").Range("A1").Select

Else

Worksheets.Add before:=Worksheets(1)

ActiveSheet.Name = "导航"

End If

'遍历工作表

For Each wks In Worksheets

i = i 1

'排除"导航"工作表

If i = 1 Then GoTo Continue

'添加导航链接

With ActiveCell

.Value = wks.Name

.Hyperlinks.Add ActiveCell,"", _

wks.Name & "!A1", _

TextToDisplay:=wks.Name, _

ScreenTip:="单击返回导航工作表"

With Worksheets(i)

.Range("A1").Value ="返回到工作表: " & ActiveSheet.Name

.Hyperlinks.AddSheets(wks.Name).Range("A1"), "", _

"'" &ActiveSheet.Name & "'" & "!" &ActiveCell.Address, _

ScreenTip:="返回到工作表:" & ActiveSheet.Name

End With

End With

ActiveCell.Offset(1, 0).Select

Continue:

Next wks

End Sub

'判断工作表是否存在

Function SheetExists(strName) As Boolean

Dim obj As Object

On Error Resume Next

Set obj = ActiveWorkbook.Sheets(strName)

If Err.Number = 0 Then

SheetExists = True

Else

SheetExists = False

End If

End Function

运行NavigateWorksheet过程,将在工作簿中创建一个名为“导航”的工作表(如果该工作表已存在,则清空其中的内容),然后在“导航”工作表的列A中输入该工作簿其他工作表的名称并建立到该工作表的链接,同时在其他工作表的单元格A1中创建返回“导航”工作表的链接。

代码的图片版如下:

0 人点赞