Potrzebuję kod VBA w programie excel, który określi wymiary obrazów z danego łącza internetowego. Poniżej znajduje się kod, który stworzyłem;
Sub ccheck()
Dim ie As New InternetExplorer
Dim path As String
ie.Visible = True
path = Sheet1.Range("A1").Value
ie.navigate path
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Dim doc As HTMLDocument
Set doc = ie.document
Dim sdd As String
Dim size As String
For i = 1 To 20
sdd = Trim(doc.getElementsByTagName("img")(i).src)
size = Trim(doc.getElementsByTagName("img")(i).Width) + "x" + Trim(doc.getElementsByTagName("img")(i).Height)
Sheet2.Range("A" & i).Value = path
Sheet2.Range("B" & i).Value = sdd
Sheet2.Range("C" & i).Value = size
Next i
End Sub
Problem polega jednak na tym, że jeśli atrybut height lub width nie jest podany w kodzie źródłowym strony, skrypt podaje wartość zerową.
Czy istnieje inny sposób na uzyskanie wymiarów obrazu oprócz metody podanej w kodzie.
Uprzejmie pomóż z tym samym, co ja jestem nowy w vba. Każda pomoc jest doceniana. Dzięki.
Odpowiedzi:
0 dla odpowiedzi № 1Dokonałem pewnych modyfikacji kodu.
Sub ccheck()
On Error Resume Next
Dim ie As New InternetExplorer
Dim path As String
ie.Visible = True
path = "http://stackoverflow.com/questions/16268923/image-dimensions"
ie.navigate path
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Dim doc As HTMLDocument
Set doc = ie.document
Dim sdd As String
Dim size As String
Dim imgEle As Object
Set imgEle = doc.getElementsByTagName("img")
Dim i As Object, j As Long
j = 1
For Each i In imgEle
sdd = Trim(i.src)
size = Trim(i.Width) + "x" + Trim(i.Height)
Sheet2.Range("A" & j).Value = path
Sheet2.Range("B" & j).Value = sdd
Sheet2.Range("C" & j).Value = size
j = j + 1
Next
End Sub