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:返回工作表,執行代碼就能將圖片下載下來了。

這種方法是不是更簡單和方便呢?有類似需求的可以收藏代碼。


分享到:


相關文章: