在excel中获取文件的大小

时间:2016-09-26 13:51:30

标签: excel excel-vba vba

例如:

Cell A                           | Cell B   
==================================
http://m---.com/myfile.txt       |   4kbs
--------------------------------------------
http://m---.com/myfile.txt       |   10kbs
--------------------------------------------
http://m---.com/myfile.doc       |  104kbs
----------------------------------------------
http://m---.com/myfile.jpg       |   102kbs

我只是在单元格A中有URL列表,我希望在单元格B中有文件大小。

我为此尝试了VBA代码,但它不起作用。更重要的是,我刚从互联网获取此代码而不是我的代码,但它对我没有帮助。这是代码:

print file path Cells(i + 1, 1) = objFile.Path 'print size Cells(i + 1, 2) = objFile.Size

是否可以在excel中的特定网址上获取文件大小?检查上面的示例,我在A列中有URL,并希望在B列中获取文件大小。

1 个答案:

答案 0 :(得分:1)

这是我对我所作评论的进一步解释:

Function URLFileSize(urlLink As String) As String
    Dim xmlObj As Object
    Set xmlObj = CreateObject("MSXML2.XMLHTTP")

    xmlObj.Open "HEAD", urlLink, False
    xmlObj.Send
    If xmlObj.Status = 200 Then
        URLFileSize = xmlObj.getResponseHeader("Content-Length")
    Else: URLFileSize = -1
    End If

    Set xmlObj = Nothing
End Function

要在单元格中使用此功能,请在单元格B2中放置=URLFileSize(A2),它将在单元格B2中显示字节。

要在VBA中使用,请像其他任何函数一样调用它:RandomVariable = URLFileSize(fullUrlString)