【问题标题】:Image dimensions图像尺寸
【发布时间】:2013-04-28 22:56:56
【问题描述】:

我需要一个 Excel 中的 VBA 代码,它将确定来自给定 Web 链接的图像的尺寸。 下面是我创建的代码;

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

但问题是,如果网站的源代码中没有给出 height 或 width 属性,脚本会将值设为零。

除了代码中给出的方法,还有其他方法可以获取图片尺寸吗?

请帮助我,因为我是 vba 的新手。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 路径变量中有什么?
  • 路径变量是确定图像尺寸所需的网络链接
  • Kinldy 提供网址
  • 它可以是任何想要的网络链接。

标签: excel vba


【解决方案1】:

对代码做了一些修改。

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

【讨论】:

  • 我没有包含没有高度和宽度属性的图像标签的链接。所以不能检查相同的。如果源代码中没有为图像标签声明高度和宽度属性,上述代码是否有效。
  • @user2330230 是的,它会工作。 dom 中的每个 HTMLImg 对象都有 height 和 width 属性。
  • 好的。非常感谢您帮助我。我检查了几个网站。它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2018-05-30
  • 2012-06-17
  • 2020-09-27
  • 2011-11-06
相关资源
最近更新 更多