我一直在研究这个问题,我真的不知道如何使用vba,而且我一直在网上寻找解决方案一段时间没有成功。这就是我想要做的事情:
我有一个宏将复制工作表(名为“PartSheet”)并将其放在工作表列表的末尾,所以如果我继续按下宏,它将创建如下页面:
PartSheet(2),PartSheet(3)用于选项卡名称等。
现在我正在尝试添加一个超链接到这个宏,以便每次我创建一个新的副本 它还将创建指向第一个工作表的超链接(名为“摘要”)
这是我写的代码:
Sub Test2()
Sheets(Sheets.Count).Select
Name = ActiveSheet.Name
Sheets("Summary").Select
Range("A10").Select
ActiveCell.FormulaR1C1 = ""
Range("A10").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
" 'Name' !A1 ", TextToDisplay:="Link"
End Sub
当我运行宏时,它将创建超链接,但它将是无效的引用。
答案 0 :(得分:3)
使用以下代码替换您的代码。确保在制作PartSheet的新副本后立即调用它。
Sub AddHyperlink()
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim linkedSheet As Worksheet
Dim linkRange As Range
'set variable to the sheet the hyperlink will link to
Set targetSheet = ThisWorkbook.Sheets(ActiveSheet.Name)
' specify the range on the summary sheet to link to
Set targetRange = targetSheet.Range("A1")
' set variable to sheet that will have the hyperlink
Set linkedSheet = ThisWorkbook.Sheets("Summary")
' specify where on that sheet we'll create the hyperlink
Set linkRange = linkedSheet.Range("B4")
' create the hypperlink on the copied sheet pointing
' back to the summary sheet
linkedSheet.Hyperlinks.Add Anchor:=linkRange, Address:="", SubAddress:= _
"'" & targetSheet.Name & "'!" & targetRange.Address, _
TextToDisplay:="Go To " & targetSheet.Name
End Sub
避免漏洞的提示:
答案 1 :(得分:1)
由于“SubAddress”的设置方式,它无法正常工作。将其更改为:
Sub Test2()
Dim Name As String
Sheets(Sheets.Count).Select
Name = ActiveSheet.Name
Sheets("Summary").Select
Range("A10").Select
ActiveCell.FormulaR1C1 = ""
Range("A10").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Name & "!A1", TextToDisplay:="Link"
End Sub