2016-09-26 2 views
0

Например:Fetch размер файла в 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 

Возможно ли получить размер файла по определенному URL-адресу в excel? Проверьте приведенный выше пример, у меня есть URL-адрес в столбце A и хочу получать размер файла в столбце B.

+0

Вы пробовали 'FileLen()'? Он должен вернуть размер файла в байтах. – Tyeler

+0

спасибо за предложение, нет, я не знаю много об этом .. Позвольте мне искать в google и сообщит вам, если что-то получится .. спасибо –

+0

@Tyeler спасибо, я нашел это в сети " Например: Dim LResult As Long LResult = FileLen ("C: \ instructions.doc") ", но я думаю, что это не сработает для меня, так как у меня много URL-адресов в Cell A. и им не удалось поставить эту партию данных по одному в FileLen (путь к файлу). надеюсь, что это какая-либо формула или код, которые будут выбирать значения из ячейки A и предоставлять результат (размер файла) в ячейке B. –

ответ

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)

+0

спасибо, не могли бы вы рассказать мне, как я запускаю этот код, потому что в excel vba я думаю, что использовать sub для запуска и завершения функции. и еще одна вещь, поскольку у меня много URL-адресов в Cell A, поэтому он будет выбирать один за другим автоматически или каждый раз, когда мне нужно поместить один URL-код в код, а затем запустить код .. спасибо за то, что поделились своими знаниями –

+0

благодаря его работе –

+0

I ' Я рад, что смогу помочь! – Tyeler

Смежные вопросы