excel 做目录,有超级链接指向特定单元格的这种表格。
用excel做目录,点击目录里的任何一项,都能在其他工作薄里准确到特定单元格的内容,就是这样的。不太好语言表述。 展开
你看看这是不是你想要的。具体做法见最下面图片。
另附自动建立目录方法:
如果在工作簿中有许多工作表,使用时往往会建立一张目录表并插入超链接以方便选择工作表。但是如果工作簿中的工作表经常添加和删除,使用手工建立目录很不方便,此时可以使用工作表的Activate事件自动建立工作表的目录,如下面的代码所示。
#001 Private Sub Worksheet_Activate()
#002 Dim sh As Worksheet
#003 Dim a As Integer
#004 Dim R As Integer
#005 R = Sheet1.[A65536].End(xlUp).Row
#006 a = 2
#007 If Sheet1.Cells(2, 1) <> "" Then
#008 Sheet1.Range("A2:A" & R).ClearContents
#009 End If
#010 For Each sh In Worksheets
#011 If sh.CodeName <> "Sheet1" Then
#012 Sheet1.Cells(a, 1).Value = sh.Name
#013 a = a + 1
#014 End If
#015 Next
#016 End Sub
代码解析:
工作表的Activate事件,在“目录”工作表激活时自动建立工作簿中除“目录”工作表外所有工作表的目录。
第2、3、4行代码声明变量类型。
第5行代码取得A列最后非空单元格的行号。
第6行代码设置变量a的初始值为2,从A2单元格开始建立工作表目录。
第7行到第9行代码判断是否存在工作表目录,如果存在先清空原来的目录,以便更新目录。
第10行到第15代码遍历工作簿的所有工作表,将除“目录”工作表外所有工作表的名称写入到A列单元格中。
为了建立到各工作表的链接,使用工作表的SelectionChange事件,如下面的代码所示。
#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
#002 Dim R As Integer
#003 R = Sheet1.[A65500].End(xlUp).Row
#004 On Error Resume Next
#005 If Target.Count = 1 Then
#006 If Target.Column = 1 Then
#007 If Target.Row > 1 And Target.Row <= R Then
#008 Sheets(Target.Value).Select
#009 End If
#010 End If
#011 End If
#012 End Sub
代码解析:
工作表的SelectionChange事件,当选择A列工作表目录中工作表名称时自动选择该单元格所对应的工作表。
第5、6、7行代码限制该事件触发的条件。
第8行代码选择单元格所对应的工作表。
“目录”工作表激活后自动在A列建立工作簿中除“目录”工作表以外所有表的目录,