我试图更改以下代码,以使打开的网页来自粘贴到特定单元格中的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
答案 0 :(得分:1)
MainPage
不是ie
的属性
.MainPage.Range("c5").Hyperlinks(1).Follow
应该是
MainPage.Range("c5").Hyperlinks(1).Follow
答案 1 :(得分:0)
答案 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