【问题标题】:Excel VBA Listbox linksExcel VBA 列表框链接
【发布时间】:2014-04-16 13:09:17
【问题描述】:

我目前有一个包含两列和多行的宏。这两列包含诸如名字和文件夹或网站链接等信息。

当我单击宏上的按钮时,它会从 excel 表中获取所有信息并显示名字并将其放在列表框中。

我想知道,当我单击按钮时,是否有可能在列表框中显示名字但也存储链接?当我在列表框中选择一个项目时,我希望它打开链接。这可能吗?

我想到了一种方法,那就是使用列表框和存储链接的数组,当我单击一个项目时,它会搜索数组然后打开链接,例如:如果我单击第一个列表框中的项目,它将进入数组并转到数组(1)然后获取该链接。

这是我想到的一种方法,但有没有更简单的方法?而不是我将链接存储到一个数组中。

我目前的代码是:

For row = 3 To 10
    ListBox1.AddItem Range("A" & row).Text
Next

我不知道如何给这段代码添加超链接

【问题讨论】:

  • 你现有的代码是什么?
  • 是用户窗体列表框吗?
  • 是的,它是一个用户表单列表框
  • 可以遍历所有超链接,然后使用.FollowHyperlink方法。
  • HERE 是如何迭代或操作超链接。然后由你决定是否使用Workbooks.Open 方法或.FollowHyperlink 链接到非 Excel 文件。

标签: vba excel excel-2007 excel-2010


【解决方案1】:

更新:

我要做的是用两列创建Listbox:

Private Sub UserForm_Initialize()
    Dim row As Integer

    ListBox1.ColumnCount = 2
    ListBox1.ColumnWidths = "50;150"
    For row = 3 To 10
        ListBox1.AddItem Range("A" & row).Text
        ListBox1.List(ListBox1.ListCount - 1, 1) = Range("B" & row).Text
    Next
End Sub

这里是ListBox1_DblClick 处理程序(当用户双击列表框项时):

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error GoTo ErrHandler
    ThisWorkbook.FollowHyperlink Address:=ListBox1.List(ListBox1.ListIndex, 1)
ExitHere:
    Exit Sub
ErrHandler:
    If Err.Number = -2147221014 Then
        MsgBox "Wrong link!"
    Else
        MsgBox "Error: " & Err.Description
    End If
    Resume ExitHere
End Sub

然后您可以双击列表框中的任何项目以跟随超链接:

另外我建议你把Range("A" & row).Text改成ThisWorkbook.Worksheets("Sheet1").Range("A" & row).Text

【讨论】:

  • 是否有可能不是用超链接隐藏第二列,而是让它可见,当用户点击链接时,它会打开链接?
  • 是的,有可能,您是否已经有任何打开链接的代码?
  • 酷 :p 我在 OP 的问题中发布了 :)
  • 看来你的链接确实错了。能给我看看你的链接吗?
  • @simoco 我将链接更改为“https://www.google.ca”,现在它们可以工作了,非常感谢!你是最棒的!
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多