当前位置 : 主页 > 网页制作 > HTTP/TCP >

以编程方式将href超链接添加到excel范围

来源:互联网 收集:自由互联 发布时间:2021-06-16
这已成为一个简单答案的常见问题,但我似乎无法找到解决方案.使用Excel宏,我检查网站主页的链接,并将这些链接放入Excel中的范围. 现在我想将这些值变成超链接. Set allLinks = objIE.docume
这已成为一个简单答案的常见问题,但我似乎无法找到解决方案.使用Excel宏,我检查网站主页的链接,并将这些链接放入Excel中的范围.

现在我想将这些值变成超链接.

Set allLinks = objIE.document.GetElementsByTagName("A")
For Each link In allLinks
    If InStr(link.href, inspectOneCat) Then
        inspectLink(linkCount) = link
        linkCount = linkCount + 1
    End If
Next

在下一步中,将一维数组转换为二维数组,其中inspectLink(i,0)中的描述性列和inspectLink(i,1)中的链接值.然后将数组加载到一个范围内,如下所示:

Sheets("Awesomepova").Range("a2:b300").Value = inspectLink

这有效.但这些链接显示为值,而不是超链接.我想做这样的事情:

'Sheets("Awesomepova").Hyperlinks.Add Sheets("Awesomepova").Range("a2:b300"), Sheets("Awesomepova").Range("a2:b300").Value

这不起作用.但我手动进入工作表并更改了第一个单元格,因此它是超链接的,我注意到即使我以编程方式重新加载整个范围,超链接仍然存在,所以我认为这是单元格格式的特征,而不是实际单元格中的数据.

也许可以通过将相同的格式应用于列中的所有单元格来解决问题,其中规则是将单元格值用作超链接值.

这是使用For i …循环的等价物

Public Sub TestMe()
    Dim myArr As Variant
    Dim i As Long

    myArr = Array("www.bbc.com", "www.stackoverflow.com")

    For i = 0 To UBound(myArr)
        Worksheets(1).Cells(i + 1, 1).Hyperlinks.Add Worksheets(1).Cells(i + 1, 1), myArr(i)
    Next i
End Sub
网友评论