VBA生成和修改链接

时间:2016-04-13 07:17:50

标签: excel vba hyperlink

我有一个Excel表单,它通过链接而不是按钮启动了4个步骤(我尽量避免使用它们),这些是'清除'生成','计算'和'发布PDF'。

我通过以下方式调用这些链接:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
If Target.Range.Address = "$L$13" Then
'Function

等等。在哪里" $ L $ 13"是放置第一个链接的单元格地址。每个链接都需要自己的单元格地址。现在,这个代码是一个' if ... else if'循环4个处所(每步一个)。

'清除'功能很明确(这个笑话在我身上)。

'生成'函数复制和粘贴一系列单元格('形式'),与用户指示的组一样多次。它们被分隔相同数量的行。

'计算'函数根据用户的输入执行一些手动计算。

'发布PDF'获取电子表格并以PDF格式打印。

好吧,我被要求进行“计算”'对于每个生成的表单,按钮(以及“发布PDF'但现在并不重要”)按钮('发布PDF'但现在并不重要)推动用户每组计算一次结果。

因为它是一个链接,我可以将链接复制并粘贴到表单的其余部分,但我只是将它发送给原始的'计算'工作表开头的按钮。复制的链接保留原始链接的子地址(即子地址= L13)

是否有机会继续使用链接来调用每个步骤但是有很多'计算'链接到同一个函数?

提前谢谢。

我把它留给代码的主要结构:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

'Comparing this with $L$13:$L$16

If Target.Range.Address = "$L$13" Then

'Clear button function                

Exit Sub

ElseIf Target.Range.Address = "$L$14" Then

'Generate button function

    'Copying_the_template (k)

        'This is an fail attempt to modify the link once it is pasted.

        'Cells(Group_index + 5, 10).Select
        'Selection.Hyperlinks(1).Address = Sheet3.Cells _
        (Group_index + 5,10).Address
        'ActiveSheet.Hyperlinks.Add , SubAddress:=Sheet3. _
        Cells(Group_index + 5, 10)

ElseIf Target.Range.Address = "$L$15" Then

'Calculate button function

   Exit Sub

ElseIf Target.Range.Address = "$L$16" Then

'Publish PDF button function

End If
End Sub

1 个答案:

答案 0 :(得分:0)

你不能做这样的事情 - 根据细胞的价值?

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    If Target.Range.Column = 12 Then    'is column L
        With Target.Range
            Select Case .Value
                Case "Clear"
                    'Clear button function
                Case "Generate"
                    'Generate button function
                Case "Calculate"
                    'Calculate button function
                Case "Publish"
                    'Publish PDF button function
            End Select
            Exit Sub
        End With
    End If

End Sub