vba - 以编程方式将 href 超链接添加到 Excel 范围

标签 vba excel

这肯定是一个常见问题,答案很简单,但我似乎无法找到解决方案。我使用 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

关于vba - 以编程方式将 href 超链接添加到 Excel 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49364747/

相关文章:

excel - Excel 2013停止在子工作

python - 如何在不删除旧数据的情况下用excel中的xlsxwriter写入现有文件

excel - 创建自安装宏?

excel - 需要 VBA 协助根据表 1 中的值将数据复制到表 2 中的一行,并从表 1 中删除原始数据

xml - 如何使用 VBA 从 XML 中读取所有属性?

excel - 在用户窗体中使用类模块变量(需要错误 '424' 对象)

perl - 如何在 Perl 或批处理中合并两个 Excel (xls) 文件?

excel - 从 Excel 工作表插入数据表后插入默认签名

vba - 为什么 Debug.print 区分 bool 值和整数?

C# COM DLL 阻止 VBA 应用程序退出