先來看看問題
我的同事遇到一個難題:他在釘釘上網課,通過表單收集學生作業,可數據導出後,得到的卻是如圖的一堆鏈接,沒有圖片。
可是真正需要的,卻是這些鏈接對應的圖片,並且希望將這些圖片保存在某個文件夾中。
於是,只能逐個手動下載,然而,任兩個班的課,每班50名學生,筆記+作業.....每人每天至少交5張圖片,一星期的數據有多少?哈哈~~~~下載圖片的過程真的很酸爽。
其實有簡單的解決辦法
對這類問題,如果換用VBA來解決,十秒鐘就能搞定。
步驟1:按Alt+F11打開VBE窗口,插入一個模塊。
步驟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>
步驟3:返回工作表,執行代碼就能將圖片下載下來了。
這種方法是不是更簡單和方便呢?有類似需求的可以收藏代碼。
閱讀更多 Excel其實很簡單 的文章