我在一个单元格中包含大量数据的工作表,而在下一个单元格中包含文档的URL。我想获取文档的大小。在Excel中可以吗?
例如:
--------------------------------------------
| 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 |
|------------------------------------------|
我只在URL列中有URL列表,A
而我想在column中有文件大小B
。
我为此尝试了VBA代码,但无法正常工作。还有一件事,我只是从互联网上获得了这段代码,而不是我的,但是它没有用。这是代码:
print file path Cells(i + 1, 1) = objFile.Path 'print size Cells(i + 1, 2) = objFile.Size
将此代码粘贴到Excel文件上的新模块中,然后运行该Tester
功能对其进行测试。
为了进行测试,请将Tester
函数中的URL替换为您自己的URL进行测试。
Sub Tester()
MsgBox FileSize("https://www.google.com/images/logo.png")
End Sub
Function FileSize(sURL As String)
Dim oXHTTP As Object
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "HEAD", sURL, False
oXHTTP.send
If oXHTTP.Status = 200 Then
FileSize = oXHTTP.getResponseHeader("Content-Length")
Else
FileSize = -1
End If
End Function
将其粘贴到Excel填充中的模块后,您可以通过VBA使用该Tester
函数,如功能所示,也可以按以下方式使用它:
如果columnA
包含所有URL,并且您想在column中显示文件大小,请B
在单元格中键入此文件B1
并将其向下拖动:
=FileSize(A1)
上面将给出文件大小(以字节为单位)。如果要以千字节为单位显示文件大小,四舍五入到小数点后两位,并在数字旁边显示“ KB”,则可以更新以下代码行:
FileSize = oXHTTP.getResponseHeader("Content-Length")
到下面的新内容:
FileSize = CStr(Round(oXHTTP.getResponseHeader("Content-Length") / 1024, 2)) + " KB"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句