當(dāng)工作簿中的工作表不多時(shí),我們只需要單擊底部的工作表名到達(dá)想要操作的工作表。然而,當(dāng)有很多工作表時(shí),要找到想要的工作表就需要邊單擊滾動按鈕邊查找工作表,這可能要花點(diǎn)時(shí)間了。
其實(shí),我們可以創(chuàng)建一個(gè)導(dǎo)航工作表,將工作簿中的所有工作表名稱都放置到導(dǎo)航工作表中,并設(shè)置到工作表的鏈接,這樣,我們只需要單擊工作表名稱,即可到達(dá)相對應(yīng)的工作表。同時(shí),在每個(gè)工作表中,放置回到導(dǎo)航工作表的鏈接,這樣單擊該鏈接就可以迅速回到導(dǎo)航工作表。這樣更方便快捷,如下圖1所示。
圖1
實(shí)現(xiàn)上述功能的VBA代碼如下:
Sub NavigateWorksheet()
Dim wks As Worksheet
Dim i As Integer
i = 0
‘如果存在”導(dǎo)航”工作表,則清除其內(nèi)容
‘如果不存在”導(dǎo)航”工作表,則添加
If SheetExists(“導(dǎo)航”) Then
Cells.ClearContents
Worksheets(“導(dǎo)航”).Range(“A1”).Select
Else
Worksheets.Add before:=Worksheets(1)
ActiveSheet.Name = “導(dǎo)航”
End If
‘遍歷工作表
For Each wks In Worksheets
i = i + 1
‘排除”導(dǎo)航”工作表
If i = 1 Then GoTo Continue
‘添加導(dǎo)航鏈接
With ActiveCell
.Value = wks.Name
.Hyperlinks.Add ActiveCell,””, _
wks.Name & “!A1″, _
TextToDisplay:=wks.Name, _
ScreenTip:=”單擊返回導(dǎo)航工作表”
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
運(yùn)行NavigateWorksheet過程,將在工作簿中創(chuàng)建一個(gè)名為“導(dǎo)航”的工作表(如果該工作表已存在,則清空其中的內(nèi)容),然后在“導(dǎo)航”工作表的列A中輸入該工作簿其他工作表的名稱并建立到該工作表的鏈接,同時(shí)在其他工作表的單元格A1中創(chuàng)建返回“導(dǎo)航”工作表的鏈接。
代碼的圖片版如下: