Как Excel VBA сделать тикер в URL для удаления данных - PullRequest
0 голосов
/ 07 октября 2019

В предыдущем случае я пытался избежать тикера в URL, добавив переменную из .querySelector("#autocomplete_input").value = ThisWorkbook.Worksheets("SHEET1").Cells(1, 1). Это хорошо отражается на годовых финансовых показателях, но не на финансовых показателях за квартал .querySelector("[value^='/investing/stock/" &.querySelector("#autocomplete_input").value &"/financials/income/quarter']"). Это не работает Есть ли способ, которым я могу использовать это, спасибо?

Public Sub makeselections()
Dim ie As New InternetExplorer

With ie
 .Visible = True
 .Navigate2 "https://www.marketwatch.com/investing/stock/aapl/financials"

While .Busy Or .readyState < 4: DoEvents: Wend
With .document
.querySelector("#autocomplete_input").value = ThisWorkbook.Worksheets("SHEET1").Cells(1, 1)
.querySelector("#investing_ac_button").Click
End With

While .Busy Or .readyState < 4: DoEvents: Wend

Dim ele As Object
 With .document
  Do
  Set ele = .querySelector("[value^='/investing/stock/" &.querySelector("#autocomplete_input").value &"/financials/income/quarter']")
  On Error Resume Next
  Loop While ele Is Nothing
.querySelector("[value^='/investing/stock/" &.querySelector("#autocomplete_input").value &"/financials/income/quarter']").Selected = True
.querySelector(".financials select").FireEvent "onchange"

  stop
 End With
 .Quit
End With

End Sub

1 Ответ

0 голосов
/ 07 октября 2019

Убедитесь, что вы работаете со строчными буквами. Также рассмотрите возможность использования синхронизированного цикла, как в этом SO ответе.

Public Sub MakeSelections()
    Dim ie As New InternetExplorer, var As String

    var = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Value

    With ie
        .Visible = True
        .Navigate2 "https://www.marketwatch.com/investing/stock/aapl/financials"

        While .Busy Or .readyState < 4: DoEvents: Wend
        With .document
            .querySelector("#autocomplete_input").Value = var
            .querySelector("#investing_ac_button").Click
        End With

        While .Busy Or .readyState < 4: DoEvents: Wend

        Dim ele As Object
        With .document
            Do
                On Error Resume Next
                Set ele = .querySelector("[value^='/investing/stock/" & LCase$(var) & "/financials/income/quarter']")
                On Error GoTo 0
            Loop While ele Is Nothing
            ele.Selected = True
            .querySelector(".financials select").FireEvent "onchange"

            Stop
        End With
        .Quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...