在excel主表中怎样用函数或VBA打开其它表

我的工资簿中有很多工资表,查找很费时,请您帮助怎样在表一(主表)中输入其它表的名称即可显示该表.比如:在"主表"中输入"库存"即可显示"库存"工作表,而在"库存"工作表中点击"返回主表"按钮,即可返回主表
请老师帮忙,定有重谢
xq4u老师你好!我使用了,效果很好,只是不能直接返回"目录"界面,如果能,就更好了.
您好!在"指定宏"中没有"返回目录"的宏,无法指定.请您再给编制一个"返回目录"的宏

用 VBA 生成带超链接的工作表目录,生成的目录工作表名称为“目录”,生成前请先确认是否已有同名的工作表,按下 ALT+F11 进入VBA编辑器,新建一模块,将下列代码复制到模块中:

Public Sub 返回目录()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
On Error GoTo ErrorHandler ' 打开错误处理程序。
Worksheets("目录").Activate
Worksheets("目录").Range("a1").Select
Exit Sub

ErrorHandler:
Msg = "在 " & Worksheets.Parent.Name & " 中没有目录表 !" ' 定义信息。
Msg = Msg & vbLf & "是否创建目录表 ?" ' 定义信息。
Style = vbYesNo + vbInformation + vbDefaultButton1 + vbApplicationModal ' 定义按钮。
Title = Worksheets.Parent.Name ' 定义标题。

Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用户按下“OK”。
MyString = "Yes" ' 完成某操作。
目录
Else
MyString = "No" ' 完成某操作。
End If
End Sub

Public Sub 目录() '生成工作表目录,生成的目录工作表名称为“目录”,生成前请先确认是否已有同名的工作表
Dim ColStart As Long, RowStart As Long
Dim ws As Worksheet, xlSheet As Worksheet
Dim SheetName As String, SheetExists As Boolean
Dim Msg, Style, Title, Response, MyString

SheetName = "目录"
For Each ws In Worksheets
If ws.Name = SheetName Then
SheetExists = True
Exit For
End If
Next ws

If SheetExists Then
Msg = "目录工作表已存在,是否重生成目录工作表?" ' 定义信息。
Style = vbYesNo + vbInformation + vbDefaultButton1 + vbApplicationModal ' 定义按钮。
Title = Worksheets.Parent.Name ' 定义标题。
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' 用户按下“OK”。
MyString = "Yes"
Set xlSheet = Worksheets(SheetName)
xlSheet.UsedRange.Clear
Else
MyString = "No"
Exit Sub
End If
Else
Set xlSheet = Worksheets.Add(Before:=Worksheets(1), Count:=1, Type:=xlWorksheet)
xlSheet.Name = SheetName
End If

If SheetExists Then
Else
End If

xlSheet.Move Before:=Worksheets(1)
xlSheet.Activate
xlSheet.Cells(1, 1).Value = "目录"

RowStart = 2
ColStart = 1
For Each ws In Worksheets
If ws.Name <> SheetName Then
With xlSheet
.Hyperlinks.Add Anchor:=.Cells(RowStart, ColStart), _
Address:="", _
SubAddress:="'" & ws.Name & "'" & "!A1", _
ScreenTip:=ws.Name, _
TextToDisplay:=ws.Name
RowStart = RowStart + 1
End With
End If
Next ws
End Sub

1、切换到 Excel ,按 ALT+F8 运行上面“目录”的宏即可创建目录工作表。
2、返回目录工作表:在 Excel 中点击菜单 “工具” → “自定义” ,在弹出的对话框中选择 “命令”栏,在左边的“类别”框中选择“宏”,在右边的“命令”框中左键拖动“自定义按钮”到任意一个工具栏上(自己觉得方便的位置上即可),右键点击刚刚拖到工具栏上的图标,选择“指定宏”,在弹出的“指定宏”对话框中选择“返回目录”,点“确定” → “关闭”,返回 Excel 操作界面,要返回目录时,只需点击刚刚拖到工具栏上的按钮即可。

说明:第2点中的返回目录的按钮只能用于包含上述代码的工作簿,若要对其他工作簿也适用,则可新建一空白工作簿,进入VBA编辑器,在此空白工作簿下新建一模块,将上述代码复制到该模块中,返回 Excel ,点击“另存为”,选择保存类型为 “Microsoft Office Excel 加载宏(*.xla)”,将此加载宏文件复制到 “Documents and Settings/<user name>/Application Data/Microsoft/AddIns” 文件夹内,重新打开 Excel ,点击菜单 “工具” → “加载宏”,此时在 “可用加载宏” 可看到多出了一个刚刚保存的加载宏的文件名字的选项,将此项前面的勾打上,即可在以后打开 Excel 时自动加载该宏。此时再按上述第2点中的步骤设置按钮时,在选择“指定宏”时,在弹出的“指定宏”对话框中看不到任何选项,不用理会直接输入“返回目录”,再点“确定” → “关闭”,返回 Excel 操作界面即可在任何工作簿中使用该按钮了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-19
使用超链接或直接引用数据
相似回答