【问题标题】:Excel VBA Hyperlinked MacrosExcel VBA 超链接宏
【发布时间】:2018-01-10 03:32:36
【问题描述】:

我有一个工作簿,第一张表是“模板”表,我在输入所有数据之前复制了它。第一个模板表有一个超链接宏,如果我在模板表中输入日期,它可以正常工作,但是当我复制并使用超链接时,它会跳回模板表并从那里运行。

这是我正在使用的代码,它写在 Sheet1 对象区域(而不是模块)中,这可能是我出错的地方,但如果写在 ThisWorkbook 中,超链接似乎不起作用对象区域。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    If Target.Range.Address = "$U$5" Then
        Dim MyDir
        MyDir = Range("T5").Value
        Select Case MyDir
            Case "N":
                Range("B3:E3,C10,C16:D16,H3:K3,I10,I16:J16,N3:Q3,O10,O16:P16").Select
                Range("B3").Activate
            Case "S":
                Range("B4:E4,C11,C19:D19,H4:K4,I11,I19:J19,N4:Q4,O11,O19:P19").Select
                Range("B4").Activate
            Case "E":
                Range("B5:E5,C12,C22:D22,H5:K5,I12,I22:J22,N5:Q5,O12,O22:P22").Select
                Range("B5").Activate
            Case "W":
                Range("B6:E6,C13,C25:D25,H6:K6,I13,I25:J25,N6:Q6,O13,O25:P25").Select
                Range("B6").Activate
            Case Else
                MsgBox "No Direction Entered"
        End Select
    End If
End Sub

我不想使用按钮或 Activex/Forms 按钮,并且需要它作为超链接(因为一旦我输入了我需要的数据,复制的工作表本身就会被复制到另一个工作簿中,该工作簿将复制任何按钮或控件,我不想每次完成表单时都记得删除它们)。

有没有什么方法可以让复制的超链接宏在复制的工作表中工作而不返回到原始模板工作表?

【问题讨论】:

    标签: excel vba hyperlink


    【解决方案1】:

    不知道它是否适用于您的用例,但您可以使用超链接来触发常规功能...

    例如,在一个单元格中:

    =HYPERLINK("#DoSomething()","Do Something")
    

    在常规模块中:

    Public Function doSomething()
    
        'you can use Application.Caller to get the triggering cell:
        Debug.Print "doSomething", Application.Caller.Address, Application.Caller.Parent.name
        Set doSomething = Selection.Offset(0, 1) 'or wherever you want to link to
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 2021-07-25
      • 2015-04-28
      相关资源
      最近更新 更多