Excel VBA列表框链接

4

我目前有一个带有两个列和许多行的宏。这两个列保存了一些信息,例如名字和一个指向文件夹或网站的链接。

当我在宏上点击按钮时,它会获取Excel表格中所有信息并显示第一个名字,并将其放入列表框中。

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

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

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

我目前拥有的代码是:

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

我不知道如何向此代码添加超链接。

你现有的代码是什么? - enderland
1
这是用户窗体的列表框吗? - Dmitry Pavliv
是的,它是一个用户窗体列表框。 - HumanlyRespectable
您可以遍历所有超链接,然后使用.FollowHyperlink方法。 - L42
1
这里是如何迭代或操作超链接的方法。接下来就看你是否使用 Workbooks.Open 方法或 .FollowHyperlink 来打开非 Excel 文件的链接了。 - L42
1个回答

3

更新:

我会创建一个带有两列的 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

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

enter image description here

我还建议您将 Range("A" & row).Text 更改为 ThisWorkbook.Worksheets("Sheet1").Range("A" & row).Text


有没有可能不隐藏带超链接的第二列,而是让它可见,并且当用户点击链接时,打开该链接? - HumanlyRespectable
是的,这是可能的。你已经有打开链接的任何代码了吗? - Dmitry Pavliv
1
很酷 :p 我在 OP 的问题中发布了那个 :) - L42
1
你的链接似乎是错误的。你能给我看一下你的链接吗? - Dmitry Pavliv
1
@simoco,我把链接改成了“https://www.google.ca”,现在它们可以工作了,非常感谢你!你是最棒的! - HumanlyRespectable
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接