1
は、私は価格だけ値を返すようにしようとしている場所からのリンクです:https://www.express-supp...VBA
私はにすべての製品グリッド - 詳細を返しVBAスクリプトテーブル値を持っていますワークブックは一部の値が間違った列に入り、ピボットピボットテーブルが生成されません。しかし、このコードをというテーブルを生成するように変更した場合、価格ボックスは値をまったく返しません。
私は、ページ上のHTMLテーブルが順不同であり、互いに順序付けされておらず、データが列から外れていると思います。解決策として、私はVBAがページの項目名と価格だけを返すようにしたいが、全体の多くは返すことはしたくない。どうすればいいのですか?製品・グリッドの詳細を返すように選択する場合、テーブルは、ブック内に戻されるかの
例:ここでは
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "https://www.express-supplements.co.uk/catalogsearch/result?q=Optimum+Nutrition", False
.send
oHtml.body.innerHTML = .responseText
Debug.Print
End With
ReDim a(1 To 100000, 1 To 60)
For Each oElement In oHtml.getElementsByClassName("product-grid-details")
i = i + 1
x = Split(oElement.innerText, vbCr)
For ii = 1 To UBound(x)
a(i, 1) = nowDate
a(i, 2) = nowTime
a(i, 3) = weblinks(webX, 1)
a(i, 4) = weblinks(webX, 2)
a(i, ii + 4) = Trim$(x(ii))
Next
Next oElement
With SHwebdata
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Cells(LastRow + 1, 1).Resize(i, UBound(a, 2)) = a
i = 0
End With
あなたは天才です!完璧に動作します! – Martin
この[link](http://www.bodybuildingwarehouse.co.uk/optimum-nutrition?limit=all)を見て、複数のテーブルからアイテム名と価格を返すことが可能かどうかをご覧くださいちょうどあなたが投稿したのと同じアプローチですか? ** getElementsByClassName( "category-products")**と**( "product-name")**および**( "price")**の後に続くべきだと思いますが、何らかの理由で動作しません。 ** Item(0)**数値は戻り値に変更する必要がありますか? – Martin
問題ありません。新しいスレッドを開いてここにリンクを付けてください。私はそれを調べるつもりです。ありがとう。 – SIM