03.04 Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

先来看看问题

我的同事遇到一个难题:他在钉钉上网课,通过表单收集学生作业,可数据导出后,得到的却是如图的一堆链接,没有图片。

Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

可是真正需要的,却是这些链接对应的图片,并且希望将这些图片保存在某个文件夹中。

Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

于是,只能逐个手动下载,然而,任两个班的课,每班50名学生,笔记+作业.....每人每天至少交5张图片,一星期的数据有多少?哈哈~~~~下载图片的过程真的很酸爽。

Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

其实有简单的解决办法

对这类问题,如果换用VBA来解决,十秒钟就能搞定。

步骤1:按Alt+F11打开VBE窗口,插入一个模块。

Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

步骤2:在插入的模块中写入代码:

<code>Sub 下载图片()
Dim Xml As Object, Irow As Long, PicName As String, Pic
Set Xml = CreateObject("msxml2.Xmlhttp")
Irow = 2
Do While Cells(Irow, "C").Value <> ""
Pic = Split(Cells(Irow, "C").Value, ".")
PicName = Cells(Irow, "A").Text & Cells(Irow, "B").Text & "." & Pic(UBound(Pic))
Xml.Open "GET", Cells(Irow, "C").Text, False
Xml.send
Do While Xml.readyState <> 4
DoEvents
Loop
Dim Arr() As Byte
Arr = Xml.responsebody

Open ThisWorkbook.Path & "\\图片\" & PicName For Binary As #1
Put #1, , Arr
Close #1
Irow = Irow + 1
Loop
MsgBox "下载完成,单击【确定】按钮查看结果。", vbInformation
Shell "explorer.exe " & ThisWorkbook.Path & "\\图片\", vbNormalFocus
End Sub/<code>
Excel中下载千张图片,手动操作要一天,用VBA下载图片十秒搞定

步骤3:返回工作表,执行代码就能将图片下载下来了。

这种方法是不是更简单和方便呢?有类似需求的可以收藏代码。


分享到:


相關文章: