如何从单元格引用中打开超链接?

时间:2019-06-04 17:10:49

标签: excel vba internet-explorer

我试图更改以下代码,以使打开的网页来自粘贴到特定单元格中的URL;标题为“主页”的工作表中的C5。这是必需的,因为URL会经常更改。

以前的代码是.navigate2 "www.example.com"

现在,我已将".MainPage.Range("c5").Hyperlinks(1).Follow"插入代码中,以尝试从指定的单元格中打开URL。

但是这返回了以下错误:

  

运行时“ 438”错误-对象不支持此属性或方法。

这是IE最初无法识别此URL的结果吗?我们欢迎任何有关如何适当地实现此功能的想法。

Public Sub GetData()
    Dim ie As Object, hTable As HTMLTable, clipboard As Object, ws1 As Worksheet, MainPage As Worksheet
    Set ws1 = ThisWorkbook.Worksheets("Margin Comparison")
    Set MainPage = ThisWorkbook.Worksheets("Run VBA")
    Set ie = CreateObject("InternetExplorer.Application")
    Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

    With ie
        .Visible = True
        MainPage.Range("c4").Hyperlinks(1).Follow

        With .document
            If .querySelectorAll(".offer-close").Length > 0 Then .querySelector(".offer-close").Click
            .querySelector(".tools-icon").Click
            If .querySelectorAll("[title='Change to decimal odds']").Length > 0 Then .querySelector("[title='Change to decimal odds']").Click
        End With
        While .Busy Or .readyState < 4: DoEvents: Wend
        Set hTable = .document.querySelector(".eventTable")
        clipboard.SetText hTable.outerHTML
        clipboard.PutInClipboard
        ws1.Range("A1").PasteSpecial
        Dim cutOff As Range
        Set cutOff = ws1.Columns(1).Find("QuickBet")
        If Not cutOff Is Nothing Then ws1.Rows("1:" & cutOff.Row).EntireRow.Delete
    .Quit

3 个答案:

答案 0 :(得分:1)

MainPage不是ie的属性

.MainPage.Range("c5").Hyperlinks(1).Follow

应该是

MainPage.Range("c5").Hyperlinks(1).Follow

答案 1 :(得分:0)

这对我有用:

Sub ytrewq()
    Sheets("Main page").Range("C5").Hyperlinks(1).Follow
End Sub

enter image description here

答案 2 :(得分:0)

您使用的是哪个版本的Excel?我试图在Excel 2016中测试以下代码,一切正常,您可以尝试创建一个新的工作表并再次测试以下代码:(在我的示例中,我创建了一个名为“主页”的工作表,然后添加一个链接在C5单元格中

Dim ie As Object, MainPage As Worksheet
Set MainPage = ThisWorkbook.Worksheets("Main Page")
MainPage.Range("c5").Hyperlinks(1).Follow

此外,您还可以尝试首先获取单元超链接地址,然后使用Navigate方法定向到该网站。代码如下:

Dim ie As Object, MainPage As Worksheet

Set ie = CreateObject("InternetExplorer.Application")
Set MainPage = ThisWorkbook.Worksheets("Main Page")

ie.Visible = True
ie.Navigate MainPage.Range("c5").Hyperlinks(1).Address