如何固定excel工作表标签中第一个工作表名称?

如果一个Excel文件有多个工作表,工作表标签中的工作表名称就会互相遮掩,找起来非常麻烦。

我想在第一个工作表中做出目录来就方便多了,但是工作表标签中的第一个工作表名称很容易就被别的名称遮掩了。
我就想能不能固定住第一个工作表名称,其余的标签名称可以互相遮掩。每次点最前面的第一个工作表名称“目录”就能找到。

怎么来做吗?已经在网上找好长时间了。

  将第一个工作表作为目录,隐藏后方其他工作表,点击目录中的其他工作表名,就可以打开对应的工作表,这个功能利用VBA就可以达到。

  将第一个工作表名改为“目录”,右键工作表标签,单击“查看代码”,将下方代码直接复制进去,就可以了,会自动生成目录,有个缺点就是,如果工作表很多,返回目录时会有点慢。

Private Sub Worksheet_Activate()
Dim SH As Worksheet
i = Worksheets.Count
 For j = 2 To i
  Cells(j, 1) = Sheets(j).Name
  For Each SH In Worksheets
   If SH.Name <> "目录" Then SH.Visible = False
  Next
 Next j
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Sheets(Target.Text).Visible = True
Sheets(Target.Text).Activate
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-05
建议二楼的代码改到OPEN事件中,这样每当打开文件,除目录表外,全部隐藏。或在OPEN事件中也加入上面的代码。主要目的是,当不是目录页为当前页时关闭文件,再打开时,文件可见表只有一个。
第2个回答  2009-07-05
用VBA做

把第一个表格改名为“目录”

在第一个表格的代码窗口贴入一下代码

Private Sub Worksheet_Activate()
Dim SH As Worksheet
i = Worksheets.Count
For j = 2 To i
Cells(j, 1) = Sheets(j).Name
For Each SH In Worksheets
If SH.Name <> "目录" Then SH.Visible = False
Next
Next j
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Sheets(Target.Text).Visible = True
Sheets(Target.Text).Activate
End Sub

就能实现你的要求本回答被提问者采纳
第3个回答  2009-07-05
你试试右击工作表标签最左边的箭头区,然后就可以直接选择第一个工作表。

虽然没解决你的问题,但这个操作应该是比较快的了。
第4个回答  2009-07-05
直接点击 最左边的箭头区 “ |< ” 就可以回到第一个工作表
相似回答