'成功案例一
'这个宏可以一次给所有工作表的同一单元格建立返回目录表或汇总表的链接
' Macro2 Macro
' 宏由 张险峰 录制,时间: 2011-8-21
Application.ScreenUpdating = False '关闭屏幕刷新
Dim oRange As Range
For Each sh In ThisWorkbook.Sheets '遍历所有工作表
sh.Activate '激活工作表
'下面这句中的[a5]意为指定输入单元格为a5,网上搜了一天,也没有找到这个功能,终于被自己发现了。
' "Sheet1!A1"为所有各表超链接点击返回的地址,这个也可以修改;"目录"为所有各表超链接单元格所要显示的内容
ActiveSheet.Hyperlinks.Add Anchor:=[a5], Address:="", SubAddress:="目录!A1", TextToDisplay:="目录"
'下面这段设置返回单元格的格式,这段也可以不要。
Range("A5").Select
With Selection.Font
.Name = "宋体"
.FontStyle = "常规"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Next
End Sub
Sub 给所有工作表建立同一链接2()
'成功案例二,可以设置从第几个工作表开始建立链接
'这个宏可以一次给所有工作表的同一单元格建立返回目录表或汇总表的链接
' Macro2 Macro
' 宏由 张险峰 录制,时间: 2011-8-21
Application.ScreenUpdating = False '关闭屏幕刷新
Dim oRange As Range
For Each sh In ThisWorkbook.Sheets '遍历所有工作表
sh.Activate '激活工作表
'下面这句中的[a5]意为指定输入单元格为a5,网上搜了一天,也没有找到这个功能,终于被自己发现了。
' "Sheet1!A1"为所有各表超链接点击返回的地址,这个也可以修改;"目录"为所有各表超链接单元格所要显示的内容
Dim i As Long
i = ActiveSheet.Index '取得工作表的位置序号(索引号)
If i > 2 Then '判断工作表位置,以便确定设置链接的工作表,本例从第三个工作表开始(因为要 > 2)
ActiveSheet.Hyperlinks.Add Anchor:=[a5], Address:="", SubAddress:="目录!A1", TextToDisplay:="目录"
'下面这段设置返回单元格的格式,这段也可以不要。
Range("A5").Select
With Selection.Font
.Name = "宋体"
.FontStyle = "常规"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Else
'MsgBox "执行第二句"
End If
Next
End Sub
Sub 建立所有工作表的链接目录()
'这个宏可以从选定单元格开始输入后面所有工作表的名称和链接
Dim nIndex As Integer
Dim oRange As Range
For nIndex = 1 To Sheets.Count '指定从第几张工作表开始产生目录,“1”可以修改成你需要的数值。
'下面这句中Selection.Row + nIndex - 1是当前工作表活动单元格所在的行,可以根据需要修改。
'Selection.Column是当前工作表中活动单元格所在的列。
Set oRange = Cells(Selection.Row + nIndex - 1, Selection.Column + 0) '指定从选中行开始输入链接目录,行、列中的“0”可以替换成你需要的数值。
oRange.Hyperlinks.Add Anchor:=oRange, Address:="", SubAddress:=Sheets(nIndex).Name & "!A1", TextToDisplay:=Sheets(nIndex).Name
Next
End Sub