如何在excel中获取文件大小?


0

我在一个单元格中有大量数据,下一个单元格中有文档的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列表A,我希望列中的文件大小B

我为此尝试了VBA代码,但它不起作用。还有一件事,我刚从互联网上获取此代码,而不是我的代码,但它没有用。这是代码:

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

这里有一个类似案例的例子。您可以将其用作参考。stackoverflow.com/questions/15883237 / ...
mortueta 2016年

2
欢迎来到超级用户。您能否与我们分享您已尝试过的内容(包括任何公式或代码)?
CharlieRB 2016年

嗨我为此尝试了vba代码,但它不起作用。还有一件事我只是从互联网上得到这个代码,而不是我的。但它没有帮助我..这里是代码''打印文件路径单元格(i + 1,1)= objFile.Path'打印大小单元格(i + 1,2)= objFile.Size'
biz

这个问题真的不清楚,或者是为了惩罚提问者缺乏努力的近距离投票?
德米特里格里戈里耶夫2016年

Answers:


2

将此代码粘贴到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 fille中的模块中后,您可以通过VBA使用它,如Tester函数中所示,或者您可以按如下方式使用它:

如果列A包含所有URL,并且您希望在列中显示文件大小,请B在单元格中键入此内容B1并将其向下拖动:

=FileSize(A1)

以上将给出文件大小(以字节为单位)。如果要以千字节显示文件大小四舍五入到2位小数并且在数字旁边显示“KB”,则可以更新以下代码行:

FileSize = oXHTTP.getResponseHeader("Content-Length")

到下面的新的:

FileSize = CStr(Round(oXHTTP.getResponseHeader("Content-Length") / 1024, 2)) + " KB"

感谢您的帮助,但问题是我没有文件夹中的文件我的文件服务器和单元格A我有很多网址。你可以帮我这个我如何使用这个代码的网址
biz 2016年

请参阅更新的答案中的信息
thilina R 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.