【问题标题】:How to add several hyperlinks in VBA?如何在 VBA 中添加多个超链接?
【发布时间】:2023-03-22 00:20:02
【问题描述】:

我正在尝试在 VBA 中添加条件超链接 - 如果一个单元格显示某些内容(在四种可能性中),则该链接应该出现在另一个单元格中,在同一张纸上,相隔几列。

“类别”是条件所基于的内容的单元格的名称。 我已经这样做了,但是当我按下播放时,表格上什么也没有出现。我犯错了吗?

Sub Création_lien()

If Categorie = "Vocabulaire" Then
    ActiveSheet.Hyperlinks.Add Range("H6"), 
    "https://www.anglaisfacile.com/exercices/exercice-anglais-2/exercice-anglais-113622.php"
End If

End Sub

我用 F8 完成了它,它告诉我“类别”是空的。 这是我的工作表:

在第 4 到第 6 列中有一个列表可供选择,并且有几种可能性会根据您的选择而变化

由于我有多个答案对应于单元格“类别”中的相同内容,我如何添加多个链接以便它们可以出现在 9 个单元格中?

【问题讨论】:

  • 使用 F8 键逐行浏览代码。此外,编辑您的问题并发布当前数据和预期结果的屏幕截图

标签: excel vba if-statement hyperlink


【解决方案1】:

我认为缺少的只是将Categorie 更改为Range("Categorie")。 Visual Basic 编辑器认为Categorie 是一个变量,这就是它为空的原因。

您的另一个问题是如何添加多个链接。如果链接取决于 Categorie 的值,那么您可以尝试以下操作:

Sub Création_lien()

Workbooks("Book1").Activate 'put your workbook name here

    If Range("Categorie") = "Vocabulaire" Then
        ActiveSheet.Hyperlinks.Add Range("H6"), "https://www.anglaisfacile.com/exercices/exercice-anglais-2/exercice-anglais-113622.php"
    ElseIf Range("Categorie") = "Some other value" Then
        ActiveSheet.Hyperlinks.Add Range("H6"), "https://stackoverflow.com/posts/59270705/edit"
    End If

End Sub

【讨论】:

  • 我尝试了您的选择,但随后出现错误消息。当我逐行检查时,它告诉我 Range("Categorie") ' Range("Categorie")= ' 问题仍然存在。至于“elseif”,我认为这不是我需要的。如果“Categorie”=“Vocabulaire”,我需要做的是在(H6;J10)范围内的几个单元格中包含不同的链接。然后,如果“Categorie”=“Grammaire”,我希望这些相同的单元格包含另一组不同的链接。
  • 您很可能收到此错误消息,因为具有指定范围的工作簿未处于活动状态。我添加了一个额外的行来激活你的工作簿。在我看来,这并不是真正的最佳做法,而是一个简单的解决方法。
  • 它在桌子上打开。我应该如何让它更活跃?
  • 假设激活工作簿可以解决第一个问题。当Categorie = "Vocabulaire" 时,H6:J10 范围内的每个单元格是否都包含唯一链接?如果是这样,我认为没有任何方法可以避免像ActiveSheet.Hyperlinks.Add Range("H6"), "https://stackoverflow.com/posts/59270705/edit" 这样的多行
  • 不,每个单元格将包含不同的链接:)
猜你喜欢
  • 2022-01-17
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2020-12-09
  • 1970-01-01
  • 2015-06-23
  • 2017-08-06
相关资源
最近更新 更多