【发布时间】:2017-09-25 14:30:39
【问题描述】:
我正在尝试创建 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
最终代码不需要像第一个示例中那样生成范围列表。
【问题讨论】:
标签: vba excel hyperlink named-ranges