Como buscar o tamanho do arquivo no excel?

0

Eu tenho uma planilha com muitos dados em uma célula e URLs de documentos na próxima célula. Eu quero buscar o tamanho do documento. É possível no Excel?

Por exemplo:

--------------------------------------------
| 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   |
|------------------------------------------|

Acabei de ter listas de URLs na coluna A e quero ter o tamanho do arquivo na coluna B .

Eu tentei código VBA para isso, mas não está funcionando. Só mais uma coisa, acabei de receber esse código da internet e não é meu, mas não funcionou. Aqui está o código:

print file path Cells(i + 1, 1) = objFile.Path 'print size Cells(i + 1, 2) = objFile.Size
    
por biz 26.09.2016 / 14:15

1 resposta

2

Cole este código em um novo módulo no seu arquivo do Excel e execute a função Tester para testá-lo.

Para testes, substitua o URL na função Tester por um URL próprio para testar.

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

Uma vez que este é colado em um módulo no seu arquivo Excel, você pode usá-lo através do VBA, como mostrado na função Tester ou você pode usá-lo como abaixo:

Se a coluna A contiver todas as URLs e você quiser mostrar o tamanho do arquivo na coluna B , digite-o na célula B1 e arraste-o para baixo:

=FileSize(A1)

Acima, o tamanho do arquivo será fornecido em bytes. Se você deseja exibir o tamanho do arquivo em bytes de quilo arredondados para duas casas decimais e exibir "KB" ao lado do número, atualize a seguinte linha de código:

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

para o novo abaixo:

FileSize = CStr(Round(oXHTTP.getResponseHeader("Content-Length") / 1024, 2)) + " KB"
    
por 26.09.2016 / 15:39