以编程方式创建指定名称的Excel超链接

时间:2014-05-21 19:10:18

标签: excel-vba hyperlink vba excel

我有一张Excel表格,我使用HYPERLINK函数和定义的名称,即=HYPERLINK("#IS_Detail_CM_Entity01_Revenue",SUM($A1:$A15)。我在这个特定的工作簿中有数百个这样的公式。我想将此文件发布为.pdf,但转换过程不会根据Excel超链接功能在Adobe中创建链接。

我已尝试使用" ActiveSheet.Hyperlinks.Add Cell,Cell.Value"代码,但我无法使用我使用的已定义名称。

有办法做到这一点吗?我真的不期待手动定义这些链接。

1 个答案:

答案 0 :(得分:0)

假设我们在使用定义名称的 HYPERLINK()功能实现的工作表中有超链接。例如:

=HYPERLINK("#MyCell","destination")

我们希望将它们转换为插入的超链接。选择包含公式的单元格并运行此小宏:

Sub HyperConverter()
    Dim r As Range, s As String, rLook As Range
    Dim DQ As String
    DQ = Chr(34)
    Set rLook = Intersect(ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeFormulas), Selection)
    If Not rLook Is Nothing Then
        For Each r In rLook
            s = r.Formula
            If InStr(s, "HYPERLINK") > 0 And InStr(s, "#") > 0 Then
                ary = Split(s, DQ)
                r.Clear
                ss = Mid(ary(1), 2, 9999)
                ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:=ss, TextToDisplay:=ary(3)
            End If
        Next r
    End If
End Sub