Kinguin价格请求excel vba循环

时间:2017-06-06 12:37:59

标签: excel vba excel-vba

为了一个爱好,我试图学习VBA。 现在我试图在excel表中获得游戏标题的价格。 我目前只有名字和ID。 (https://www.kinguin.net/nl/category/ {{ID}})

我设法让它适用于1个字段:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = Range("Spel_ID").Row And _
    Target.Column = Range("Spel_ID").Column Then
        Dim IE As New InternetExplorer
        IE.Visible = False
        IE.navigate "https://www.kinguin.net/product/" & Range("Spel_ID").Value
        Do
            DoEvents
        Loop Until IE.readyState = READYSTATE_COMPLETE
        Dim Doc As HTMLDocument
        Set Doc = IE.document
        Dim sDD As String
        sDD = Doc.getElementsByClassName("relative-price-container")(0).innerText
        IE.Quit
        Dim aDD As Variant
        aDD = Split(sDD, ",")
        Range("Prijs").Value = aDD(0)
    End If
End Sub

然而,这仅更新1个字段。我将如何循环这个并填充整个列?

修改

我设法制作了一个For循环,但我并不完全在那里。我不确定如何将结果插入列中。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Dim row As Range
Dim cell As Range

Set rng = Range("A3:A10")

For Each row In rng.Rows
  For Each cell In row.Cells
    If Target.row = Range("Spel_ID").row And _
    Target.Column = Range("Spel_ID").Column Then
        Dim IE As New InternetExplorer
        IE.Visible = True
        IE.navigate "https://www.kinguin.net/category/" & ActiveCell.Value
        Do
            DoEvents
        Loop Until IE.readyState = READYSTATE_COMPLETE
        Dim Doc As HTMLDocument
        Set Doc = IE.document
        Dim sDD As String
        sDD = Doc.getElementsByClassName("relative-price-container")(0).innerText
        IE.Quit
        Dim aDD As Variant
        aDD = Split(sDD, ",")
        Range("Prijs").Value = aDD(0)

    End If
  Next cell
Next row


End Sub

(我觉得循环范围也可以改善..)

0 个答案:

没有答案