【问题标题】:Hyperlink doesn't activates macro in VBA超链接不会在 VBA 中激活宏
【发布时间】:2015-08-03 20:25:49
【问题描述】:

我正在尝试获取激活宏的超链接。我不能使用固定的目标地址,因为我有几个链接;目标是创建可点击的已采取步骤的历史记录。所以我需要创建一个返回按钮。

我已经试过了:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    If Target.Range.Address = "$A$4" Then 
       MsgBox "This isn't what I had in mind"
    Else
       MsgBox "MACRO!"

        Exit Sub
    End If 

End Sub

有人有想法吗?

如果我单击超链接,它只会显示该单元格的代码。 代码在 Worksheet 模块中。

总体思路:

我正在制作一个基于多个步骤(总共 40 个步骤)进行计算的工作簿。例如:如果 sum 大于 9 则转到第 4 步,否则转到第 21 步。

但是因为我们都是人类并且可能会犯错误,所以我希望 excel 列出已采取的所有步骤及其答案。我想让此列表中的步骤可单击,因此当他们单击该步骤时,可以返回该步骤并从那里继续。所以很多超链接:)

【问题讨论】:

  • 可点击历史是什么意思?里面应该放什么?选择的每个超链接,选择的每个单元格,或更改的每个单元格......?每次他们改变一个值?您的意思是像“撤消”列表(在您启动宏时会自行删除)
  • 你把代码放在哪里了?应该在工作表代码模块中。尝试添加 Debug.Print Target.Range.Address 并确保它满足您的期望。

标签: vba excel hyperlink


【解决方案1】:

为什么不使用相同设置的 Worksheet_SelectionChange?

【讨论】:

  • 我有几个横向列出的链接。我认为,如果我使用 Worksheet_SelectionChange,我将不得不声明所有可能的行。
【解决方案2】:

这似乎对我有用,我已将您的代码复制并粘贴到新 Excel 工作簿的“Sheet1”模块中,并在“Sheet1”选项卡上放置一个超链接以单击。 MsgBox 按预期弹出。

我相信宏只有在代码位于用户单击链接的工作表的工作表模块中时才会起作用。

【讨论】:

  • 我都试过了。如果我单击或双击该链接,它只显示公式。 =IF(B16<1;"";HYPERLINK(""; "BACK"))
  • 好的,这对超链接功能不起作用。问题解决了!
【解决方案3】:

如果您需要一个超链接返回按钮,您可以随时在快速访问工具栏中添加一个:

【讨论】:

  • 因为我必须生成几个后退按钮
  • @Nathalii。每个目的地一个还是每个工作表一个??
  • 针对每个目的地。
【解决方案4】:

如果你使用=HYPERLINK()这个宏不起作用,你必须通过'rightclick',超链接来转换它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多