我想在vba中結合IE創建一個腳本,從一些網頁上抓取圖片鏈接,并將其嵌入作業表中的ASIN列旁邊。在A列中有ASINs的串列,在B列中,我想嵌入像this的圖片。因此,腳本從A列中獲取asin,并通過將該asin附加到這個基礎鏈接https://www.amazon.in/dp/來形成一個合格的鏈接。這是一個這樣的網頁的地址。
這里有一些asins:
B08SRFZX5Z
B08KKJQ8N7
B081RC61YN
這就形成了以下的鏈接:
https://www.amazon.in/dp/B08SRFZX5Z
https://www.amazon.in/p/B08KKJQ8N7
https://www.amazon.in/p/B081RC61YN
我試過用:
Sub GetImages()
Const URL$ = "https://www.amazon.in/dp/"/span>
Dim IE As Object, ws As Worksheet, celAs Range
Set ws = ThisWorkbook.Worksheets("Sheet1"/span>)
Set IE = CreateObject("InternetExplorer.Application")
For Each cel In ws. Range("A2:A" & ws.Cells(Rows.count, 1).End(xlUp) .Row)
IE.Visible = False.
IE.navigate URL & cel
While IE.Busy Or IE.readyState < 4: DoEvents: 終止
ws.Range(cel(1, 2).Address) = IE.document. querySelector("[id='imgTagWrapperId'] > img"/span>).getAttribute("src"/span>)
Next cel
End Sub
如何在作業表的asin串列旁邊嵌入圖片?
uj5u.com熱心網友回復:
請測驗下一段代碼(不使用IE):
Sub GetImagesNoIE()
Dim imageUrl$, p As Shape, ws As Worksheet, cel As Range, rng As Range, arrSrc
Dim Http As Object, HTMLDoc As Object 'late binding。
'為了受益于intellisense建議,應該添加以下兩個參考: '后期系結 '為了受益于intellisense建議,應該添加以下兩個參考
'Microsoft WinHTTP Services, version 5.1
'微軟HTML物件庫。
Const URL$ = "https://www.amazon.in/dp/"
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1" )
Set HTMLDoc = CreateObject("htmlfile")
Set ws = ActiveSheet 'ThisWorkbook.Worksheets("Sheet1")
'洗掉B:B列中以前的(現有的)形狀,如果有的話:。
Application.ScreenUpdating = False
應用程式.EnableEvents = False
Set rng = ws.Range("B:B"/span>)
For Each p In ws.Shapes
If Not Intersect(rng, p.TopLeftCell) Then p.Delete
接下來
For Each cel In ws. Range("A2:A" & ws.Cells(Rows.Count, 1).End(xlUp) .Row)
If cel.Value <> ""/span> Then
With Http
.Open "GET", URL & cel.Value, False
.setRequestHeader "User-Agent", "Firefox"。
.發送
HTMLDoc.body.innerHTML = .responseText
結束 與
If InStr(HTMLDoc.body.innerText, "我們很抱歉。你輸入的網址不是我們網站上的有效頁面") = 0 然后
imageUrl = HTMLDoc.querySelector("[id='imgTagWrapperId'] > img"/span>).getAttribute("src"/span>)
Set p = ws.Shapes.AddPicture(imageUrl, msoFalse, msoTrue, cel.Offset(0, 1).Left, _
cel.Offset(0, 1).Top, cel.Offset(0, 1) 。 寬度,cel.Offset(0, 1).高度)
Else[/span].
cel.Offset(0, 1).Value = "您輸入的網址不是我們網站上的一個有效頁面"。
End If
End If
下一步 下一步
Application.ScreenUpdating = False False
應用程式.EnableEvents = False"準備好了..."。
結束 子
uj5u.com熱心網友回復:
使用AddPicture方法使用URL插入圖片:
ws.Shapes.AddPicture("image url", msoFalse, msoTrue, cel.OffSet(0,1).Left, cel.OffSet(0,1).Top, -1. -1)
-1表示使用原始尺寸,但你可以按你所需要的尺寸改變寬度和高度。
https://docs.microsoft.com/en-us/office/vba/api/excel.shapes.addpicture
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/320200.html
標籤:
