我目前有一个包含两列和多行的宏。这两列包含诸如名字和文件夹或网站的链接之类的信息。
当我点击宏上的按钮时,它会从excel表中获取所有信息并显示名字并将其放在列表框中。
我在想,有可能当我点击按钮时,我会在列表框中显示第一个名字但是还会存储链接吗?当我在列表框中选择一个项目时,我希望它打开链接。这有可能吗?
我想到了一种方法,那就是列表框和存储链接的数组,当我点击一个项目时,它会搜索数组,然后打开链接,FOR EXMAPLE:如果我点击第一个列表框中的项目,它将进入数组并转到数组(1),然后获取该链接。
这是我想到的一种方式但有更简单的方法吗?而不是我把链接存储到一个数组和所有这些。
我当前的代码是:
For row = 3 To 10
ListBox1.AddItem Range("A" & row).Text
Next
我不知道如何添加此代码的超链接
答案 0 :(得分:2)
<强>更新强>
我要做的是用两列创建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