我正在尝试创建VBA代码,以识别工作簿中的命名区域,并为每个区域创建超链接。这些超链接需要能够复制到其他文档。
我找到了两个例子 - 每个人都做了一半的工作,但是在组合它们时遇到了麻烦:
1)查找并列出范围:
Sub namedranges()
For Each n In ThisWorkbook.Names
i = i + 1
Range("a" & i + 1) = n.Name
Next n
End Sub
2)创建所有工作表的超链接:
Sub CreateLinksToAllSheets()
Dim sh As Worksheet
Dim cell As Range
For Each sh In ActiveWorkbook.Worksheets
If ActiveSheet.Name <> sh.Name Then
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name
ActiveCell.Offset(1, 0).Select
End If
Next sh
End Sub
当我合并时,如下所示,我得到一个未设置对象/变量的错误。
Sub hyperlinknamedranges()
Dim sh as worksheet
Dim cell as range
For Each n in Thisworkbook.names
' ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & sh.Name & "'" & "#" & "'" & n.name & "'",
ActiveCell.Offset(1, 0).Select
next n
End Sub
最终代码不需要生成范围列表,如第一个示例中所做的那样。
答案 0 :(得分:0)
我认为你正在使用类似下面代码的东西,它会在列“A”(从第2行开始)的每个单元格中添加,命名范围的名称,并且一旦你点击{链接到它就链接到它{1}}。
<强>代码强>
Hyperlink
答案 1 :(得分:0)
Sheet2.Select
Range("a1").Select
Dim nm As Name
For Each nm In Names
ActiveCell.Value = nm.Name
ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:= _
nm.RefersTo
ActiveCell.Offset(1, 0).Select
Next nm
End Sub