Я попытался изменить приведенный ниже код, чтобы открываемая веб-страница принадлежала URL-адресу, вставленному в определенную ячейку; С5 из листа под названием «Главная страница». Это необходимо, так как URL будет часто меняться.
Ранее код был .navigate2 "www.example.com"
.
Теперь я вставил ".MainPage.Range("c5").Hyperlinks(1).Follow"
в код в попытке открыть URL из указанной ячейки.
Однако это вернуло следующую ошибку:
Run-time'438'error - объект не поддерживает это свойство или метод.
Является ли это результатом того, что 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